Dar3_D3vil Posted December 12, 2005 at 03:48 PM Report #8452 Posted December 12, 2005 at 03:48 PM Eu tou a fazer o trabalho final de programação e tou com um problema... A obter strings, se usar scanf(" %s",comando); akilo ignorame os espaços e se usar fgets(comando,DIMAX,stdin); (o DIMAX ta definido como 100) reconhece td mas depois n executa umas funçoes enkanto k com o scanf execute mas n le os espaços.... E o gets o meu stor diz k n se deve usar pk tem mtos problemas. Alguem tem uma alternativa???
saramgsilva Posted December 12, 2005 at 04:26 PM Report #8454 Posted December 12, 2005 at 04:26 PM scanf(" %s",comando); nao devias ter scanf("%s",comando); o espaço que tem antes de %s, nao te traz problemas....comando tem k ser uma string... www.saramgsilva.com As minhas apps no WP7 Marketplace Youtube : Galinho - Windows Phone 7.5
Dar3_D3vil Posted December 12, 2005 at 04:33 PM Author Report #8456 Posted December 12, 2005 at 04:33 PM Epah o prob é k o scanf ignora os espaços e o espaço n tem nd a ver com isso... ate testei com e sem espaço pa ter a certeza. Se alguem souber de uma alternativa ou soluçao... avise
jarsantos Posted December 12, 2005 at 06:06 PM Report #8464 Posted December 12, 2005 at 06:06 PM o espaço é um char e o scanf apanha toda a string ate o \n por isso nao compreendo a duvida.
Dar3_D3vil Posted December 12, 2005 at 06:58 PM Author Report #8475 Posted December 12, 2005 at 06:58 PM N é duvida, lol, é certeza. Teoricamente devia ler o espaço mas ignora-o, e fiz scanf de uma string pa um vector de dimensao 100.. testei com menos de 10 caracteres(incluindo espaços). depois fiz o printf da string, e akilo imprimiu sem espaços mas sim numa nova linha, tipo se escrever help help aparece: help help mas se escrever help help aparece: help help na mm. :S Mas o Bruno ja me ajudou a resolver isto fazendo assim: scanf("%[^\n]s",comando); so k agr akilo dame outro prob. no printf o outoput é o k escrevi mas bues vezes ate eu fazer ctlr+c (serve pa parar a execuçao)
jarsantos Posted December 13, 2005 at 05:27 AM Report #8493 Posted December 13, 2005 at 05:27 AM não acaba o programa enquanto nao carregares em ctrl C? é porque esta em ciclo infinito. em relação à cena da string eu acho que a melhor forma de apanhar texto é com o getchar, assim tens mais control sobre aquilo que o utilizador escreve, dá é mais trabalho.
Dar3_D3vil Posted December 13, 2005 at 03:46 PM Author Report #8500 Posted December 13, 2005 at 03:46 PM como é k se faz com o getchar???
Bruno Posted December 17, 2005 at 11:43 PM Report #8763 Posted December 17, 2005 at 11:43 PM Se ainda tens problemas diz q eu ajudo-te... o problema da solução q te dei é q fica um '\n' no buffer... mas é facil solucionar! 😛
redhat Posted December 28, 2005 at 01:41 AM Report #10029 Posted December 28, 2005 at 01:41 AM hehehe ele pára pk (e estupidamente) o caracter que corresponde ao espaço eh igual ao de final de string ou seja '\0' e se bem me lembro (ja nao pego em C faz tempo, ando com outras linguagens agr) pra ultrapassar esse problema tive que passar a string para uma cadeia de chars (que eh efectivamente o que uma string e') e dp verificar um a um se era o '\0' ja n me recordo bem, mas penso que foi assim boa sorte com o trabalho! =)ß Software is like sex... it's better when it's free in the old days P@P "C" && "Linux" Moderator
[PT]Devilishly Posted December 28, 2005 at 03:20 PM Report #10090 Posted December 28, 2005 at 03:20 PM ... passar a string para uma cadeia de chars (que eh efectivamente o que uma string e') e dp verificar um a um se era o '\0' ... Esse é o algoritmo usado no strlen() para determinar o tamanho da string 😄
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now