Как я могу получить строки в текстовом файле - PullRequest
2 голосов
/ 20 декабря 2010

Я начал программировать на языке C, и у меня возникли проблемы с чтением текстовых файлов. Позвольте мне объяснить.

У меня есть один текстовый файл, который организован так:

Tony 
12.23
John
09.45
Tayris
03.99

Я хотел бы получить все заметки меньше десяти и отобразить их, но я не могу ...

Кто-нибудь может мне помочь?

Большое спасибо.

Ответы [ 2 ]

3 голосов
/ 20 декабря 2010

C предоставляет четыре функции, которые можно использовать для чтения файлов с диска:

  1. fscanf ()

    ориентированная на поля функция.

  2. fgets ()

    строчно-ориентированная функция.

  3. fgetc ()

    символьно ориентированная функция

  4. fread ()

    блочно-ориентированная функция.

Подробнее см. в этой статье .

2 голосов
/ 20 декабря 2010

Проверьте функцию fgets. Он будет возвращаться до (и включая) конца строки (вы можете удалить его из строки назначения, если хотите).

http://people.cs.uchicago.edu/~iancooke/osstuff/ccc.html предлагает пример:

Вот более сложный пример. Readline () использует fgets () для чтения до MAX_LINE - 1 символ в буфер «в». Полоски предшествуют пробел и возвращает указатель на первый непробельный символ.

 char *Readline(char *in) {
   char *cptr;

   if (cptr = fgets(in, MAX_LINE, stdin)) {
     /* kill preceding whitespace but leave \n 
        so we're guaranteed to have something*/
     while(*cptr == ' ' || *cptr == '\t') {
       cptr++;
     }
     return cptr;    
    } else {
     return 0;
   }
 }

Этого должно быть достаточно, я думаю.

...