Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
SanXamD
0 / 0 / 0
Регистрация: 21.08.2014
Сообщений: 1
#1

Как работает функция fgets()?

24.08.2014, 16:49. Просмотров 1687. Ответов 2
Метки нет (Все метки)

Здравствуйте, такая проблема пытаюсь разобрать как работает функция fgets() как я понимаю она считывает из файла 1 строку до перехода на следующую (\n) и я не понимаю будет ли он продолжать считать в файле следующие строчки или нет если нет то как сделать чтобы он считал и остальные строчки естественно последовательно заранее спасибо
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.08.2014, 16:49
Ответы с готовыми решениями:

Функция fgets() удаление буфера
Доброго времени суток. Нужна помощь. Написал программу с использованием...

не корректно работает fgets()
здравствуйте, пишу код для удаления строки из файла(файл c именем fname с...

Как работает функция?
Обьясните как работает эта функция: void SearchFam(char *Parametr, FILE...

Как работает функция fabs(); ?
Очень хочу узнать как работает функция fabs(); или, если это возможно,...

Как работает функция fseek?
помогите разобраться как работает эта функция??

2
some_name
Вежливость-главное оружие
227 / 225 / 86
Регистрация: 19.02.2013
Сообщений: 1,441
24.08.2014, 17:17 #2

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

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <stdlib.h>
 
int main(int argc, char *argv[])
{
  FILE *fp;
  char str[128];
 
  if((fp=fopen(argv[1], "r"))==NULL) {
    printf("Не удается открыть файл.\n");
    exit(1);
  }
 
  while(!feof(fp)) {
    if(fgets(str, 126, fp)) printf("%s", str);
  }
 
  fclose(fp);
 
  return 0;
}
Добавлено через 2 минуты
Функция fgets
C++
1
2
#include <stdio.h>
char *fgets(char *str, int num, FILE *stream);
Функция fgets() читает из входного потока stream не более num-1 символов и помещает их в массив символов, адресуемый указателем str. Символы читаются до тех пор, пока не будет прочитан символ новой строки или значение EOF, либо пока не будет достигнут заданный предел. По завершении чтения символов сразу же за последним из них размещается нулевой символ. Символ новой строки сохраняется и становится частью массива, адресуемого элементом str.

В версии C99 к параметрам str и stream применен квалификатор restrict.

При успешном выполнении функция fgets() возвращает значение str, а в случае сбоя — нулевой указатель. В случае ошибки содержимое массива, к которому отсылает указатель str, не определено. Поскольку функция fgets() возвращает нулевой указатель и при возникновении ошибки, и при достижении конца файла, то для выяснения, что же произошло на самом деле, необходимо использовать функцию feof() или ferror().
1
easybudda
Модератор
Эксперт CЭксперт С++
10051 / 5971 / 1491
Регистрация: 25.07.2009
Сообщений: 11,305
24.08.2014, 20:36 #3
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от some_name Посмотреть сообщение
C
1
2
3
while(!feof(fp)) {
* * if(fgets(str, 126, fp)) printf("%s", str);
* }
"... Или, если хочешь, я скажу это проще:" (с)
C
1
2
while ( fgets(str, sizeof(str), fp) )
    printf("%s", str);
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.08.2014, 20:36

Как работает функция malloc?
Добрый день. Кто - нибудь может рассказать как работает функция malloc ? ...

Как работает функция strtok?
Закоментите пожалуйста char *mystrtok(char * buf, const char * delim) { ...

Как работает функция getchar?
Здравствуйте. Не совсем понимаю как работает функция getchar. Нашёл такое...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru