Je viens d'apprendre c, et j'utilise le terminal Linux. J'ai écrit le code simple suivant, mais quand je tape les entrées, le fichier ne se termine pas et ne compte donc pas le nombre de caractères. Est-ce que quelqu'un peut m'aider? J'ai aussi essayé d'autres codes d'entrée. C'est la même chose avec tous mes codes relatifs aux entrées. Qu'est-ce que je fais mal? S'il vous plaît aider.L'entrée ne sort pas en c, donc la sortie ne fonctionne pas
main()
{
/* count characters in input */
printf("Type some characters and the program will count the number of characters: ");
int c = getchar();
while(c!=EOF && c!= '\n')
++c;
printf("Number of characters typed: %1d\n", c);
}
Vous ne lisez jamais qu'un seul caractère car vous appelez 'getchar' une seule fois. Vous devez l'appeler à plusieurs reprises tant que vous ne rencontrez pas 'EOF' (ou' \ n' ou quelle que soit votre condition d'arrêt, peut-être 'while ((c = getchar())! = EOF)'? – jpw
cette fonction getchar()? La façon de prendre l'entrée est normalement à travers un scanf ("% s", tampon) qui prendra l'entrée et la copiera dans la variable ** buffer ** – Yvain
@Yvain 'getchar' est une fonction standard définie dans stdio.h, si l'OP veut lire char par char scanf ("% s") n'est pas vraiment approprié – jpw