Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705

Файловый поток вместо одного слова считывает два, почему?

02.11.2011, 21:28. Показов 1224. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Друзья! Вот код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
#include <iostream>
#include <fstream>
using namespace std;
 
int main () {
 ifstream ifs ("z.txt");
 string temp;
 
 while (!ifs.eof()) {
    ifs>> temp;
    cout<< temp<<  endl;
 }  
 getchar ();
 return 0;
}
А вот файл z.txt
Bash
1
slovo
Bash
1
2
slovo
slovo
В файле z.txt ставим курсор в конец строки и нсколько раз жмём на Enter, добавляя таким образом несколько переходов на другую строчку. Если бы они интерпретировались именно как переходы на другую строку, я бы слова не сказал. Но программа среди них находит второе слово "slovo", это уж ни в какие ворота не лезет Как быть? Я вижу в файле одно слово и я хочу его видет на экране. Спасибо, кто откликнется.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.11.2011, 21:28
Ответы с готовыми решениями:

Почему вместо одного запроса выполняется два
public string Get(string url, CookieContainer cookieCollection=null, bool Redirect = true) { string str =...

Вместо одного ядра показывает два.
Проц всю жизнь был одноклеточным, но по какимто сверхестественым событиям стал показывать два ядра. Так вот вопрос ето как понимать. Скоро...

Два комплекта из 4-х планок вместо одного из 8-ми
Можно ли на мать X299 поставить два &quot;маленьких&quot; комплекта, вместо одного большого - чтобы под Скай лайком не возникло проблем с четырёх...

9
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
02.11.2011, 21:29
Цитата Сообщение от kravam Посмотреть сообщение
while (!ifs.eof())
это неправильное чтение из файла

C++
1
2
3
4
while (ifs >> temp) 
{
    std::cout << temp << '\n';
}
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
02.11.2011, 21:30  [ТС]
последний код это вывод
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
02.11.2011, 21:30
kravam, temp.clear();
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
02.11.2011, 21:43  [ТС]
ForEveR, а чё оно делает?
Clear string
The string content is set to an empty string, erasing any previous content and thus leaving its size at 0 characters.

Я перевёл так (отсюда):
Содержание строки устанавливается в пустую строку, удаляя всё предыдущее содержание и таким образом делая размер ноль символов.
Вот теперь дело за малым- тут не сказано, какие именно строки обнуляются. Получается, что должны обнулиться ЛЮБЫЕ СТРОКИ, фактически должно быть temp.resize(0) для ВСЕХ строк;

Непонятно, в общем.
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
02.11.2011, 21:46
kravam, Вообще Jupiter верно написал. А я имел ввиду такое:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <iostream>
#include <fstream>
using namespace std;
 
int main () {
 ifstream ifs ("z.txt");
 string temp;
 
 while (!ifs.eof()) {
    ifs>> temp;
    cout<< temp<<  endl;
    temp.clear();
 }  
 getchar ();
 return 0;
}
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
02.11.2011, 21:57  [ТС]
Я понял. Вопрос остаётся в силе- чё оно делает?
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
02.11.2011, 22:00
kravam, Строку очищает оО. Тупо берет и очищает.
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
02.11.2011, 22:02  [ТС]
Хм. И это я понял. А почему оно как-то избирательно очищает строки?
Если бы оно очищало все строки, так ничё и не считалось бы.
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
02.11.2011, 23:02
kravam, Считывает - выводит - очищает...
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.11.2011, 23:02
Помогаю со студенческими работами здесь

Два раза выводится слово вместо одного
Здесь в первый раз &quot;Бот, &quot; выводится 2 раза, все последующие разы по 1 разу Вот отрывочек из функции-базы бота void...

Postmessage: вместо одного символа печатается два
Здравствуйте. При создании программы на с# возникли две проблемы при использовании Postmessage: 1. Когда я посылаю код в программу, в...

Значение два раза выводится в таблицу вместо одного
Есть вот такой код для кнопки. Суть проблемы в том, что расчитываемый результат в нужную мне таблицу закидывается лишний раз int a,tol,...

Почему цикл повторяется 3 раза вместо одного
Доброго времени суток участникам форума. Недавно начал изучать язык С#.И возникла проблема с кодом. while (player&gt;1) { ...

Почему устанавливается три экземпляра вместо одного?
Добрый вечер, сделал приложение на андроид но после установки на устройстве появляется не одна иконка а три почему так происходит ? Может...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru