Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.58/48: Рейтинг темы: голосов - 48, средняя оценка - 4.58
0 / 0 / 1
Регистрация: 01.11.2011
Сообщений: 26

Последний элемент из файла выводится 2 раза

08.09.2013, 20:33. Показов 9286. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер. Подскажите, пожалуйста, почему при чтении из файла последний элемент выводиться 2 раза? Если в файле такие данные: "string1 string2 string3", то в результате получится "string1string2string3string3".

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <fstream>
#include <string>
 
int main() {
 
std::string str;
std::string result;
 
std::ifstream fromFile("test.txt");
 
if(!fromFile)
    std::cout << "Error";
 
while(!fromFile.eof()) {
    fromFile >> str;
    result+=str;
}
 
std::cout << result;
 
return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.09.2013, 20:33
Ответы с готовыми решениями:

Почему при чтении файла последний символ выводится 2 раза?
если структура файла: 1\nEOF. То почему не выполняется условие if(Ch != '\n') { cout.put(Ch); } и программа выводит в...

Выводится только последний элемент массива
Здравствуйте. Имеется текстовый файл text.txt , где есть 4 строки разной длины. Я в своей программе определяю, что там 4 строки, ищу кол-во...

Выводится только последний элемент очереди, а нужно вывести все
Ничего понять не могу. Заполняю очередь, затем вывожу, а выводится лишь последний элемент. Например, если ввожу 1 2 3 4 5, то выводится...

14
 Аватар для Nullik
46 / 15 / 4
Регистрация: 13.03.2013
Сообщений: 302
08.09.2013, 20:37
а в файле запись в строчку или в столбец?
0
0 / 0 / 1
Регистрация: 01.11.2011
Сообщений: 26
08.09.2013, 20:39  [ТС]
В строку, но записаны через пробел.
0
 Аватар для Nullik
46 / 15 / 4
Регистрация: 13.03.2013
Сообщений: 302
08.09.2013, 20:44
qazc, я записала в столбец -- всё отлично считал.

Добавлено через 1 минуту
лол, когда в строчку записала, так же вывод сделал. Корректно, в смысле.
значит проблема только у тебя.
0
0 / 0 / 1
Регистрация: 01.11.2011
Сообщений: 26
08.09.2013, 20:46  [ТС]
Я записал в столбец и ничего не поменялось... По прежнему выводит последний элемент 2 раза.
0
2688 / 2260 / 244
Регистрация: 03.07.2012
Сообщений: 8,231
Записей в блоге: 1
08.09.2013, 20:48
Наверное, в файле есть еще пустая строка после string3
0
0 / 0 / 1
Регистрация: 01.11.2011
Сообщений: 26
08.09.2013, 20:49  [ТС]
Все ок, проблема была в одном пробеле, который стоял после последнего элемента. Всем спасибо.
0
 Аватар для Nullik
46 / 15 / 4
Регистрация: 13.03.2013
Сообщений: 302
08.09.2013, 20:49
попробуй запустить программу через точки останова, в то время просматривая локальные переменные и что находится в result. Может там чего появится нового.
0
4 / 3 / 0
Регистрация: 29.03.2012
Сообщений: 11
08.09.2013, 20:50
Цитата Сообщение от Nullik Посмотреть сообщение
лол, когда в строчку записала, так же вывод сделал. Корректно, в смысле.
значит проблема только у тебя.
Проблемы тут не "у тебя" а в формате файла который считывает, если в конце строки стоит перевод на другую строку или пробел то будет в конце дублирование, не будет перевода - не будет дублирования. Проверьте
0
 Аватар для Nullik
46 / 15 / 4
Регистрация: 13.03.2013
Сообщений: 302
08.09.2013, 20:53
maksqwe, но проблема то была ведь у него
И даже если бы прогу прокрутил бы через точки -- нашёл бы проблему.

Не по теме:

*ахаха, лол, забавно, ахаха, интересно, почему так "не продуманно" в файлах?

0
4 / 3 / 0
Регистрация: 29.03.2012
Сообщений: 11
08.09.2013, 21:03
Цитата Сообщение от Nullik Посмотреть сообщение
И даже если бы прогу прокрутил бы через точки -- нашёл бы проблему.
Это да

Кстати, почему так не продумано, так как бывают разные файлы и данные в том числе с разными разделителями в конце, unix/win etc.. например '/n' '/r', '/0'
1
2688 / 2260 / 244
Регистрация: 03.07.2012
Сообщений: 8,231
Записей в блоге: 1
08.09.2013, 21:18
Кто мешает написать программу так, чтобы все эти ситуации корректно отрабатывались?
ТС сначала проверяет на eof, а потом читает и обрабатывает
0
0 / 0 / 1
Регистрация: 01.11.2011
Сообщений: 26
08.09.2013, 21:23  [ТС]
А для чего последний элемент дублируется? От этого есть какие-то плюсы?
0
2688 / 2260 / 244
Регистрация: 03.07.2012
Сообщений: 8,231
Записей в блоге: 1
08.09.2013, 21:28
Цитата Сообщение от qazc Посмотреть сообщение
А для чего последний элемент дублируется? От этого есть какие-то плюсы?
Тебе виднее
0
 Аватар для Nullik
46 / 15 / 4
Регистрация: 13.03.2013
Сообщений: 302
08.09.2013, 21:33
qazc, у тебя он копируется, как я поняла, в том случае, потому что есть:

C++
1
2
fromFile >> str;
    result+=str;
но там не конец файла из-за лишнего проблема или абзаца.
Вероятно так.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.09.2013, 21:33
Помогаю со студенческими работами здесь

Почему на экран выводится 5 элементов массива, а в файл записывается 1 элемент (последний)
#include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;ctime&gt; #include &lt;fstream&gt; using namespace std; int main() { int...

При чтении файла последний элемент повторяется дважды
появилась необходимость выучить работу с файлами за 9 часов #include &lt;iostream&gt; #include &lt;time.h&gt; #include &lt;stdio.h&gt; ...

При считывании из файла последний элемент читается дважды
Всем доброго времени суток! Нашёл граблю. Считываю из файла слова, разделённые пробелами, в vector&lt;string&gt;. Для куска кода,...

Первый отрицательный и последний положительный элемент читаемый из файла
Из файла (имя файла вводится с клавиатуры) считывается массив целых чисел. Размер массива заранее неизвестен. Выведите в файл количество...

Ввод матрицы из файла - затирает последний элемент предыдущей строки
Странный эффект Содержимое вводимого файла- 1 2 3 4 5 6 int *a; a = new(2*3); for (i=0;i&lt;2;i++) for...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru