J'utilisais scanf pour toutes mes entrées en C. Maintenant, j'ai vu d'autres questions similaires sur scanf()
et ils ont suggéré d'utiliser fgets()
au lieu de scanf()
. Je le ferai dans le futur. Cependant, à l'heure actuelle, cette partie du code avec scanf()
ne semble jamais fonctionner. Je sais qu'il y a une solution.balayage d'une ligne de chaînes avec des espaces en utilisant scanf
Mon code est:
#define LENGTH 1000
#define WORD 100
int main(){
int i = 0;
char s[WORD][LENGTH];
do {
scanf("%s", s[i]);
i++;
}
while (s[i][strlen(s[i])] != EOF);
printf("%s\n", s);
return 0;
}
Il devrait y avoir quelque chose au lieu de EOF
dans la boucle while qui vérifie la fin de la ligne. Le résultat final devrait être un tableau de mots dans s[]
et le programme devrait imprimer ce tableau de mots sans espaces.
Je suis tombé sur 'while (scanf ("% s ", & str [strlen (str)]) == 1)'. Je suis totalement nouveau ici. Comme l'a expliqué Iharob Al Asimi, c'est faux. Pouvez-vous, s'il vous plaît, expliquer pourquoi cette solution n'est pas correcte? ou pourquoi je ne peux pas l'utiliser dans mon code? –