5 / 5 / 3
Регистрация: 09.12.2009
Сообщений: 65
|
|
1 | |
Функция fgets и перевод строки26.05.2010, 16:15. Показов 12931. Ответов 10
Метки нет (Все метки)
Есть файл со строками, надо прочитать все через функцию fgets.
Как сделать, чтобы она читала каждую строку по очереди? Проблема на самом деле в том, что только fgets учитывает пробелы при считывания(cin и fscanf не работают). Возможно можно использовать другую функцию, главное учитывать пробелы и возможность переходить со строки к строке.
0
|
26.05.2010, 16:15 | |
Ответы с готовыми решениями:
10
Как работает функция fgets()? Функция fgets() удаление буфера Странно ведёт себя функция fgets Считывает ли функция fgets строку посимвольно? |
102 / 102 / 23
Регистрация: 12.05.2010
Сообщений: 232
|
|
26.05.2010, 16:28 | 2 |
1
|
5 / 5 / 3
Регистрация: 09.12.2009
Сообщений: 65
|
|
26.05.2010, 16:29 [ТС] | 3 |
0
|
102 / 102 / 23
Регистрация: 12.05.2010
Сообщений: 232
|
|
26.05.2010, 16:32 | 4 |
1
|
29 / 29 / 7
Регистрация: 26.03.2010
Сообщений: 305
|
||||||
26.05.2010, 16:36 | 5 | |||||
Вот вроде функция чтения из файла:
1
|
5 / 5 / 3
Регистрация: 09.12.2009
Сообщений: 65
|
|
26.05.2010, 16:37 [ТС] | 6 |
Значит ты меня не понял:
-вот я один раз обратился к файлу - прочитал полностью первую строку и записал её в переменную, обработал. -снова обращаюсь к файлу, теперь нужно, чтобы прочитал только вторую строку. -и т.д так вот я не понял, как сделать переход к новой строке. Там параметром можно писать, сколько символов читать, но это не то совсем. 2robert спасибо, щас буду проверять. да уж, сложноват ваш вариант для меня пока что)
0
|
102 / 102 / 23
Регистрация: 12.05.2010
Сообщений: 232
|
|
26.05.2010, 16:47 | 7 |
что тебе мешает прямо там в цикле после получения первой строки записать ее в переменную и обработать, потом в этом же цикле fgets вернет уже 2ю строку... итд...
1
|
5 / 5 / 3
Регистрация: 09.12.2009
Сообщений: 65
|
|
26.05.2010, 17:19 [ТС] | 8 |
Пробовал, не возвращает.
А возможно как-нибудь сделать, чтобы fscanf считывал пробелы? У меня вот допустим такая строка: 0|0|Проект лала|Сдача|17|36|13|26|4|2010|11|12|13|14|15|2011|16|17|18|19|11|2011 Я хочу её записывать в 1 переменную, а потом уже разбивать стртоком по словам, но это не суть. Главное чтобы оно правильно читалось, а сканф читает до первого пробела и обрывается. Добавлено через 22 минуты Может быть вообще нужно через другую функцию это всё делать?
0
|
3528 / 2686 / 334
Регистрация: 11.03.2009
Сообщений: 6,168
|
|
26.05.2010, 17:29 | 9 |
fgets читает до тех пор, пока не прочитает определенное количество символов, указанных во втором параметре или пока не встретит символ перехода на новую строку. Таким образом, если у тебя в файле все строки заканчиваются символом перехода строки, и у тебя строковая переменная достаточно большого размера, чтобы вместить самую длинную строку в файле, то fgets будет считывать строго по строкам.
1
|
5 / 5 / 3
Регистрация: 09.12.2009
Сообщений: 65
|
|
26.05.2010, 17:47 [ТС] | 10 |
всем спасибо.
0
|
7175 / 3234 / 81
Регистрация: 17.06.2009
Сообщений: 14,164
|
|
27.05.2010, 14:52 | 11 |
C чтением fgets бывают разные приколы
1) файл пустой 2) последняя строка в файле не содержит '\n' 4) строка не влазит в буфер но все это преодолимо
0
|
27.05.2010, 14:52 | |
27.05.2010, 14:52 | |
Помогаю со студенческими работами здесь
11
Файлы, строки, fgets, ошибка 0xC0000005 Вывод конкретно заданной строки файла через fgets Заменить в строке все пробелы на перевод строки, а перевод строки изменить на два перевода Строки читаются из текстового файла функцией fgets и указатели на них помещаются в структуру данных... Разбиение строки на части, перевод строки в число и перевод числа Строки. Множества. Выполнить перевод символов строки из верхнего регистра в нижний и наоборот Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |