|
11 / 11 / 6
Регистрация: 03.04.2011
Сообщений: 631
|
||||||
Как использовать функцию fgets?12.10.2011, 15:53. Показов 43044. Ответов 26
Метки нет (Все метки)
Люди прочитал тут про функцию fgets() но как то понять до конца не могу поясните плиз кто понимает и работал с ней уже... А нашел такую информацию:
Функция fgets() читает из входного потока stream не более num-1 символов и помещает их в массив символов, адресуемый указателем str. Символы, читаются до тех пор, пока не будет прочитан символ новой строки или значение EOF, либо пока не будет достигнут заданный предел. По завершении чтения символов сразу же за последним из них размешается нулевой символ. Символ новой строки сохраняется и становится частью массива, адресуемого элементом str. (что за входной поток? и как понять не более num-1 символов?) вот такое пример был дан Приведенная программа использует функцию fgets() для вывода содержимого текстового файла, имя которого задано первым аргументом командной строки.
0
|
||||||
| 12.10.2011, 15:53 | |
|
Ответы с готовыми решениями:
26
Как использовать getline и fgets?
Как в C++ использовать функцию inc(); ? |
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|||
| 12.10.2011, 16:22 | |||
|
1
|
|||
| 12.10.2011, 16:37 | |
|
printf("%s", str);// ну тут вывод стоки только что значит "%S"
%s значит что будет выводится строка то есть последовательность символо пока не встреатится символ с кодом ноль который обозначает конец файла Добавлено через 4 минуты fgets(str, 126, fp) будет прочитано 126 символов (размер переменнй для записи строки 127 символов последний 127 str[126] используется для вставки символа с кодом ноль) если программа встретит в файле символ с кодом \n раньше чем считает 126 символов то считывание закончится
0
|
|
|
11 / 11 / 6
Регистрация: 03.04.2011
Сообщений: 631
|
|
| 12.10.2011, 17:00 [ТС] | |
|
а если в файле допустим 3 три строки и всего 280 символов тогда как будет обработка происходить?
0
|
|
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|||||||||||||||||||||
| 12.10.2011, 17:07 | |||||||||||||||||||||
|
lexflax, в любом случае, fgets читает либо до символа '\n', либо пока не прочитает num - 1 символов. Если у тебя размер буфера заведомо больше, чем размер одной строки, то за один вызов fgets из файла прочитается ровно одна строка (причем символ '\n' сохранится в буфере). Т.е, допустим, у тебя есть файл со следующим содержимым:
Если же у тебя есть файл:
0
|
|||||||||||||||||||||
|
11 / 11 / 6
Регистрация: 03.04.2011
Сообщений: 631
|
|
| 12.10.2011, 17:12 [ТС] | |
|
ну допустим у меня в первой строке 150 символом то в том листенге что выше не правильно будет, он не сможет все считать потому что там максимум 128 символов забито так? и второй вопрос допустим мне надо считать 3 строки из файла разной длинны какой код подойдет для этого можите написать ?
0
|
|
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
||
| 12.10.2011, 17:17 | ||
|
1
|
||
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
||||||||||||
| 12.10.2011, 17:27 | ||||||||||||
2
|
||||||||||||
|
11 / 11 / 6
Регистрация: 03.04.2011
Сообщений: 631
|
||||||
| 13.10.2011, 14:31 [ТС] | ||||||
|
вот такое накидал как понял но не работает посмотрите плиз, хотел чтоб из файла с именем сайв считывалось все в переменную filename, потом открывалось на чтение а потом считывалось все по строчно в нем , и выводилось так же по строчно, че я не так написал ? или не так понял ? поясните плиз...
0
|
||||||
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
||||||
| 13.10.2011, 16:02 | ||||||
1
|
||||||
|
11 / 11 / 6
Регистрация: 03.04.2011
Сообщений: 631
|
||
| 14.10.2011, 14:22 [ТС] | ||
|
(perror(filename); exit_status = EXIT_FAILURE; goto ret вот тут не пойму тоже что за слова использованны и какие у них действия поясните плиз желательно по всему листингу комменты
0
|
||
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
||
| 14.10.2011, 14:49 | ||
|
perror - функция, печатающая сообщение об ошибке goto ret - переход на метку ret
1
|
||
|
11 / 11 / 6
Регистрация: 03.04.2011
Сообщений: 631
|
||||||
| 14.10.2011, 15:02 [ТС] | ||||||
2 7 2222 3 8 24 211 1 4 Он считывает и выводи все по строчно, а можно чуть листинг программы изменить так чтоб он допустим в каждой строке считывал только первый символ ну в данном случае 2 8 1 , или допустим по два символа и так далее?
0
|
||||||
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|
| 14.10.2011, 15:11 | |
|
С помощью scanf можно, если я правильно понял, что тебе нужно
0
|
|
|
11 / 11 / 6
Регистрация: 03.04.2011
Сообщений: 631
|
|
| 14.10.2011, 15:11 [ТС] | |
|
а как можите накидать?
0
|
|
|
11 / 11 / 6
Регистрация: 03.04.2011
Сообщений: 631
|
||||||
| 14.10.2011, 15:46 [ТС] | ||||||
0
|
||||||
|
71 / 76 / 9
Регистрация: 30.06.2011
Сообщений: 176
|
||||||
| 14.10.2011, 15:58 | ||||||
Тут еще важно использовать strlen(...) проверять длину строки, чтобы знать сколько всего символов в строке.
0
|
||||||
|
11 / 11 / 6
Регистрация: 03.04.2011
Сообщений: 631
|
||
| 14.10.2011, 16:07 [ТС] | ||
|
0
|
||
| 14.10.2011, 16:59 | |
|
ну если память не изменяет то fgetc
Добавлено через 1 минуту а потом надо определить длину строки и прибавить это число к указателю чтения
1
|
|
| 14.10.2011, 16:59 | |
|
Помогаю со студенческими работами здесь
20
Как использовать функцию? Как использовать функцию Как использовать функцию НОРМСТРАСП Как использовать функцию flush()?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|