web-dev-qa-db-fra.com

Lire les valeurs int d'un fichier texte en C

J'ai un fichier texte qui contient les trois lignes suivantes:

12 5 6
4 2
7 9

Je peux utiliser la fonction fscanf pour lire les 3 premières valeurs et les stocker dans 3 variables. Mais je ne peux pas lire le reste. J'ai essayé d'utiliser la fonction fseek, mais cela ne fonctionne que sur les fichiers binaires.

Veuillez m'aider à stocker toutes les valeurs dans des variables entières.

22
elh mehdi

Une solution simple utilisant fscanf:

void read_ints (const char* file_name)
{
  FILE* file = fopen (file_name, "r");
  int i = 0;

  fscanf (file, "%d", &i);    
  while (!feof (file))
    {  
      printf ("%d ", i);
      fscanf (file, "%d", &i);      
    }
  fclose (file);        
}
43
Vijay Mathew

Que dis-tu de ça?

fscanf(file,"%d %d %d %d %d %d %d",&line1_1,&line1_2, &line1_3, &line2_1, &line2_2, &line3_1, &line3_2); 

Dans ce cas, les espaces dans fscanf correspondent à plusieurs occurrences de tout espace jusqu'au prochain jeton trouvé.

8
MAK