Форум программистов, компьютерный форум, киберфорум
Наши страницы

C для начинающих

Войти
Регистрация
Восстановить пароль
 
SanXamD
0 / 0 / 0
Регистрация: 21.08.2014
Сообщений: 1
#1

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

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

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

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

Как работает функция? - C (СИ)
Обьясните как работает эта функция: void SearchFam(char *Parametr, FILE *out) { char NotFound="Records do not found"; char...

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

Как работает приведенная функция? - C (СИ)
Я не могу понять до конца, как работает функция. Решил все действия которые происходят в циклах, сделать в функциях и указать только...

Как работает функция malloc? - C (СИ)
Добрый день. Кто - нибудь может рассказать как работает функция malloc ? Вот набрал код создания и вывода двумерного массива, но...

Как работает функция getchar? - C (СИ)
Здравствуйте. Не совсем понимаю как работает функция getchar. Нашёл такое описание: Функция getchar за одно обращение к ней выдает в...

2
some_name
Вежливость-главное оружие
227 / 225 / 55
Регистрация: 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Эксперт С++
9717 / 5668 / 971
Регистрация: 25.07.2009
Сообщений: 10,911
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
Привет! Вот еще темы с ответами:

Как работает функция fseek? - C (СИ)
помогите разобраться как работает эта функция??

Как работает функция strtok? - C (СИ)
Закоментите пожалуйста char *mystrtok(char * buf, const char * delim) { static char * H, * T, * R; if (buf) ...

Объясните как работает функция добавления в односвязный список - C (СИ)
Программа полностью рабочая. Я просто не могу понять 1 момент в функции показанной ниже. часть файла .h struct film { wchar_t...

Компилятор как будто не видит scanf, а fgets выполняет перед printf, хотя расстановка абсолютно другая - C (СИ)
В-общем, тема такая: читаю учебник, написано создать прогу для поиска текста в массиве строк. Создал поисковик песен. Все работало, решил...


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

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

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