Comment détecter une nouvelle ligne de n'importe quel fichier en utilisant un programme C
Je suis de la lecture d'un fichier de nombres entiers. Je veux enregistrer des nombres entiers de chaque ligne d'un tableau. Pour cela, je veux détecter une nouvelle ligne d'un fichier. Si quelqu'un sait s'il vous plaît aider.
Le fichier à lire est comme suit
1 2 4 5 6
7 3 2 5
8 3
9 7 6 2
Vous devez vous connecter pour publier un commentaire.
Pourquoi ne pas utiliser
fgets()
pour obtenir une ligne à la fois à partir du fichier? Vous pouvez ensuite utilisersscanf()
au lieu defscanf()
pour extraire les entiers.Utilisation
fgets()
à lire une seule ligne de saisie à un moment. Ensuite, utilisezstrtol()
pour analyser off un entier, à l'aide de sa "fin pointeur" pour comprendre où pour essayer à nouveau, et la boucle jusqu'à ce que vous avez analysé toutes les valeurs.À l'aide de
getc()
pour cette action est bien, mais n'oubliez pas quegetc()
renvoie type est de type int. Retapez à char "fonctionne", mais vous pouvez avoir un problème avec les strict-ASCII fichier d'entrée parce queEOF = -1 = 0xFF
après retaper à char (sur la plupart des compilateurs C), c'est à dire0xFF
personnages sont détectés commeEOF
.Je ne suis pas sûr de l'int en char et vice versa la conversion, mais le programme fonctionne pour les non nul numéros. J'ai essayé sur visual basic.
Si vous utilisez la lecture de char par char, puis en reconnaissant les espaces avec '32' et 'enter' par '13' et/ou '10'