Считать значения int из текстового файла на C - PullRequest
22 голосов
/ 05 января 2011

У меня есть текстовый файл, который содержит следующие три строки:

12 5 6
4 2
7 9

Я могу использовать функцию fscanf, чтобы прочитать первые 3 значения и сохранить их в 3 переменных. Но я не могу читать остальное. Я попытался использовать функцию fseek, но она работает только с двоичными файлами.

Пожалуйста, помогите мне сохранить все значения в целочисленных переменных.

Ответы [ 2 ]

43 голосов
/ 05 января 2011

Простое решение с использованием 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);        
}
8 голосов
/ 05 января 2011

Как насчет этого?

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

В этом случае пробелы в fscanf соответствуют нескольким вхождениям любого пробела, пока не будет найден следующий токен.

...