En acceptant n'importe quel nombre d'entrées de la fonction scanf

Je suis en train de lire un nombre inconnu d'entrées à l'aide de scanf fonction.

int a[100];
int i = 0;

while((scanf("%d", &a[i])) != '\n')
 i++;

//Next part of the code

Mais cette fonction n'est pas d'aller à la prochaine partie du code, qui semble comme il y a une infinie while.

Comment puis-je résoudre cette erreur de logique? Est-il d'autres alternatives pour scanf comme sscanf de lire des entiers dans un tableau?

Comment voulez-vous de marquer la fin de l'entrée?
Supposons que l'utilisateur commence à entrer une liste de numéros de dire 10 espace 20 30 et après qu'ils ont fini d'entrer, ils doivent appuyer sur la touche enter pour sortir de la boucle
Valeur de retour de scanf est le <b>nombre d'éléments d'entrée correctement mis en correspondance</b>, et affecté, ce qui peut être moins que prévu, voire nul dans le cas d'un début de la correspondance de l'échec. De sorte que la comparaison avec \\n n'est pas correct.
Parce que c'est getchar qui renvoie le caractère suivant à partir de stdin, pas scanf
n = scanf("%d%d ... %d", a+0, a+1, ..., a+99); printf("%d numbers\n", n);

OriginalL'auteur user2147954 | 2013-03-08