Como leio o espaço em branco usando o scanf em c?
Problema: preciso identificar quando dois espaços em branco ocorrem consecutivamente.
Eu li as seguintes perguntas:
como ler uma string de um arquivo \ n delimitado
E estou ciente dos problemas do scanf:http://c-faq.com/stdio/scanfprobs.html
A entrada estará no seguinte formato:
1 5 3 2 4 6 2 1 9 0
Dois espaços em branco indicam que o próximo conjunto de dados precisa ser manipulado e comparado a si mesmo. O comprimento da linha é desconhecido e o número ou números inteiros em cada grupo é desconhecido. Dois espaços em branco é o máximo que separará o próximo conjunto de dados.
Embora eu possa usar fgets e várias funções internas para resolver esse problema, estou no ponto em que a solução do problema com o scanf nesse momento provavelmente será mais fácil. No entanto, se esse não for o caso, usar fgets, strtok e atoi fará a maior parte do trabalho, mas eu ainda preciso identificar dois espaços em branco seguidos.
A seguir, serão aceitos números inteiros até que um não inteiro seja inserido.
while ( scanf ( "%d", &x ) == 1 )
O que eu preciso fazer é ler os espaços em branco também e, se houver dois espaços em branco consecutivos, programarei para fazer algo diferente com o próximo conjunto de dados.
E uma vez que recebo um espaço em branco, não sei como dizer:
if ((input == "whitespace") && (previousInput == "whitespace")) ya da ya da else (input == "whitespace") ya da ya da else ya da ya da
Agradeço seu tempo e obrigado por sua ajuda.
Lição aprendida: Enquanto uma solução para o scanf é publicada abaixo por Jonathan Leffler, a solução foi um pouco mais direta com o getc (por exigir menos conhecimento íntimo do scanf interno, expressões regulares e caracteres). Em retrospecto, um melhor conhecimento de expressões regulares, scanf e char, tornaria o problema mais fácil e, é claro, saber quais funções estão disponíveis e qual delas seria a melhor a ser usada desde o início.