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

С++ для начинающих

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

Считывание из файла - C++

14.11.2011, 21:06. Просмотров 880. Ответов 4
Метки нет (Все метки)

Почему при считывании строк из файла циклом вида

C++
1
2
3
4
5
while (!feof(f))
{
fgets(line, MAX, f);
printf("%s\n", line);
}
если последняя строка пустая (то есть просто в конце файла нажали enter), она дублируется? как избежать этого?
У меня у самого следующие догадки: что когда маркер стоит на предпоследней строке, после считывания конец файла так и не достигается из-за enter'а, но и считать ничего тоже не удается => строка остается прежней, поэтому вывод дублируется на очередной итерации. Что-то вроде пустого символа?
У него есть вид какой-то? Как например у символа перехода на новую строку "\n"? Чтобы можно было задать условие, которое отсечет дублирование...
 Комментарий модератора 
Запрещено создавать темы с бессмысленными названиями вроде "Помогите!", "Вопрос" и т.п.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.11.2011, 21:06
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Считывание из файла (C++):

Заменить считывание с клавиатуры на считывание из файла - C++
Помогите пожалуйста, ни разу не работал со считыванием из файла поэтому не понимаю как и что делать. Почитал в интернете, попробовал, не...

Считывание файла в массив и запись нового файла - C++
Консоль VS C++. Текстовый файл открывается как бинарный, и считывается по 100 байт в массив - и сразу они переписываются в другой файл. В...

Считывание файла - C++
Как можно считать из файла строку 110011, как массив чисел, заранее спасибо!

Считывание из файла в С++ - C++
Всем доброго времени суток. Есть задача: Дан текстовый файл в котором записаны данные следующим образом 1 12 3 2 3 11 5 2 11 ...

Считывание с файла ! - C++
Всем доброе врямя суток ! Помогите пожалуйста мне надо чтобы прога считывала из файла не до пробела а запихивала в символьный массив прям...

Считывание из файла - C++
Ребят,подскажите пожалуйста: Нужно считать из файлов значения. Я создал два класса,в которых есть переменные,в которые будут считываться...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
emilen
10 / 10 / 0
Регистрация: 25.05.2010
Сообщений: 52
14.11.2011, 21:27 #2
Если я правильно понимаю, то сначала выводиться '\n' который считался из файла, а потом еще из "%s\n"
0
Ask
0 / 0 / 0
Регистрация: 20.10.2011
Сообщений: 16
14.11.2011, 21:53  [ТС] #3
не, я немного не о том. Предпоследняя строка выводится повторно, если даже выводить вот так

C++
1
2
3
4
5
while (!feof(f))
{
fgets(line, MAX, f);
puts(line);
}
то есть через puts. Если последняя строка в файле пустая

Добавлено через 10 минут
если использовать условие цикла
C++
1
while (fgets(line, MAX, FInput) != NULL)
то все считывается нормально и не дублируется)
0
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
15.11.2011, 05:17 #4
Цитата Сообщение от Ask
если использовать условие цикла
так и делай

ответ на вопрос: потому что, когда строка не может быть прочитана через fgets(), за вызовом fgets() всё равно идёт вывод
1
Ask
0 / 0 / 0
Регистрация: 20.10.2011
Сообщений: 16
15.11.2011, 21:39  [ТС] #5
сам не понял что-то сразу)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.11.2011, 21:39
Привет! Вот еще темы с ответами:

Считывание с файла - C++
Прогррамма неверно считывает числа с файла.вот кусок программы int mass_in_3(int *k,int *j) { int array; FILE *f1; ...

Считывание из файла - C++
//test.cpp #include <iostream> #include <fstream> using namespace std; void main() { ifstream input("input.txt"); ...

считывание файла - C++
Здравствуйте, нужно считывать файл с некоторыми данными для дальнейшей работы с ними, для этого его нужно загнать в переменную (структура...

Считывание из файла - C++
Допустим, стоит условие: из файла записать данных в массив и потом из этого же файла в переменную. Насколько я понимаю,для этого необходимо...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
15.11.2011, 21:39
Ответ Создать тему
Опции темы

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