Problème: Je dois pouvoir identifier quand deux espaces blancs se produisent de manière consécutive.Comment lire les espaces en utilisant scanf dans c?
J'ai lu les questions suivantes:
how to read a string from a \n delimited file
Je suis au courant des problèmes scanf: http://c-faq.com/stdio/scanfprobs.html
entrée sera dans le format suivant:
1 5 3 2 4 6 2 1 9 0
Deux espaces blancs indiquent que le jeu de données suivant doit être géré et comparé à lui-même. La longueur de la ligne est inconnue et le nombre ou les entiers de chaque groupe sont inconnus. Deux espaces sont les plus séparateurs de l'ensemble de données suivant.
Bien que je puisse utiliser des fgets et diverses fonctions intégrées pour résoudre ce problème, je suis à un point où la résolution du problème avec scanf à ce stade sera probablement plus facile. Cependant, si ce n'est pas le cas, en utilisant fgets, strtok et atoi feront la plupart du travail mais j'ai encore besoin d'identifier deux espaces d'affilée.
La partie ci-dessous prendra des entiers jusqu'à ce qu'un entier non-entier soit entré.
while (scanf ("%d", &x) == 1)
Ce que je dois le faire est lu aussi bien et espaces blancs s'il y a deux espaces consécutifs je vais le programme de faire quelque chose de différent avec la prochaine série de données.
Et une fois que je reçois un espace blanc, je ne sais pas comment dire:
if ((input == "whitespace") && (previousInput == "whitespace")) ya da ya da else (input == "whitespace") ya da ya da else ya da ya da
J'apprécie votre temps et je vous remercie pour votre aide.
Leçon apprise: Alors qu'une solution pour scanf est affiché ci-dessous par Jonathan Leffler, la solution est un peu plus simple avec getc (par d'exiger la connaissance moins intime du scanf intérieur, les expressions régulières et char). Rétrospectivement, une meilleure connaissance des expressions régulières, scanf et char rendrait le problème plus facile et, bien sûr, de savoir quelles sont les fonctions disponibles et quelle aurait été la meilleure à utiliser dès le départ.
C'est un format d'entrée assez horrible. Si vous en êtes responsable, modifiez-le. Si, comme je le soupçonne, on vous a confié un devoir, de la malchance, ce sont des enseignants sadiques. –
Notez que «espace blanc» est différent de «deux espaces»; «espace blanc» signifie classiquement une variété de caractères possibles, y compris une tabulation et un espace (ou un espace), et parfois un fil de forme, une tabulation verticale ou une nouvelle ligne; et parfois retour arrière aussi. –
@Jonathan Leffler: au moins, il n'essaie pas d'analyser Whitespace (http://compsoc.dur.ac.uk/whitespace/) – ninjalj