Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Файловый I/O, в TurboC++ 
:(
    Опции темы
dronzo
Дата 2.1.2006, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 26.11.2005
Где: Москва

Репутация: 1
Всего: 8



nikitao Да, это я немного на примере застопорился smile Но тогда ведь и в твоём примере в случае наличия больше, чем одной строки "Hellow World", тоже отнюдь не всё будет прочитано smile Моё предложение было в том, чтобы не мешать или один символ getline-ом читатать во вспомогательную переменную, так как ты и привёл ниже в примере, если всё-таки собрались мешать.

Это сообщение отредактировал(а) dronzo - 2.1.2006, 17:09
PM MAIL   Вверх
OXOTHUK
Дата 3.1.2006, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 116
Регистрация: 21.9.2005

Репутация: нет
Всего: 6



Я так поэкспериментировал и понял, что:
1) После чтения чисел fin.getline(str, 256); надо писать 2 раза(не занимать память всякими темповыми, а просто 2 раза).
2) После чтения строки можно(и нужно) и один раз.

А вот дана строка и надо почитать слова в разные строки.
Это значит надо:
Код

char *str1, *str2, *str3;
fin>>str1>>str2>>str3;


Например:
есть файл 1.txt:
ABC DEF GHI

Прога:
Код

#include <fstream.h>
#include <conio.h>
#include <iostream.h>

int main()
{
    clrscr();
    ifstream fin("D:\\1.txt");
    char *str1, *str2, *str3;
    fin>>str1;
    cout<<str1;
    fin>>str2;
    cout<<str2;
    fin>>str3;
    cout<<str3;
    fin.close();
    getch();
    return 0;
}


Получается - он прочитал: ABCDEF (а где GHI?)

Я следал:
Код

...
    fin>>str1;
    cout<<str1;
    fin>>str2;
    cout<<str2;
    fin>>str3;
    cout<<str3;
    fin>>str3;
    cout<<str3;
...


Тогда он всё напечатал: ABCDEFGHI
Почему он не прочитал третье слово?
PM MAIL   Вверх
Void
Дата 3.1.2006, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

Репутация: 40
Всего: 173



Цитата(OXOTHUK @ 3.1.2006, 15:12)
    char *str1, *str2, *str3;
    fin>>str1;
    cout<<str1;
    fin>>str2;
    cout<<str2;
    fin>>str3;
    cout<<str3;

Куда по-твоему читатются строки из файла? Под str1, str2, str3 не выделена память и они указывают неизвестно куда.
Если же это просто опечатка, и память ты на самом деле выделял - что ж, есть единственный способ избавиться от этих проблем: выбросить Turbo C++ в топку, и взять нормальный компилятор.


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0452 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.