Показать полную графическую версию : Основы C++ | Файловый ввод
Почему это не работает. Уже волосы начинаю рвать :(
#include <fstream.h>
#include <iostream.h>
ofstream outFile( "m_out_file.txt" );
char* word;
int main()
{
cin >> word;
outFile << word ;
}
Это просто. Замени char* word; на#define MAX 100
char word[MAX];
Добавлено:
Или можно извратиться и написать:
void main()
{
char *word = (char*)malloc(100);
cin >> word;
outFile << word;
free(word);
}
А я что-то не догадался ... :(
А почему твой работает, а мой нет?
SergeCpp
05-08-2005, 07:17
Ну и дела...
ПОЧЕМУ НЕ ЧИТАЕТЕ КНИГИ ?!
А ?!
SergeCpp
05-08-2005, 07:22
Кстати, Savant, а что, если USER введёт 123 символа ?
Тут надо использовать std::string // имя, возможно, неточное, но STD:: - точно
вместо malloc лутше используй new, а вместо free delete
SergeCpp
05-08-2005, 08:12
Если уж "cin >>", то лучше, всё-таки, STD::
И вводи туда хоть мегабайт, "там" обо всём позаботятся...
И ЧИТАЙТЕ КНИГИ !
SergeCpp, а какие книги посоветуете? да еще и такие которые можно скачать, а то в моей деревне кроме худ. лит-ры больше ничего нет.
SergeCpp
05-08-2005, 13:15
http://free.ovl.ru/pages/ebook/prog_c.php
http://anatolix.naumen.ru/Books/CPlusPlus?v=9sj
Большая просьба не флеймить в тематическом разделе и не отправлять подряд более двух постов без необходимости. Пользуйтесь ссылкой "Редактировать сообщение".
SergeCppКстати, Savant, а что, если USER введёт 123 символа ?
AV или же что-то подпортится )) Между прочим, емнип, размер буфера ввода ограничен и равен в ДОСе 127 байтам, а в консольных программах под Windows 510 байтам.
Skripа какие книги посоветуете?
Начни, например, с этого:
"Введение в язык С++" (http://www.unix.org.ua/cpp/aglav.htm) (Бьярн Страустрап, 1995 г.)
м.б. пригодится и "Язык С" (http://lib.ru/CTOTOR/kernigan.txt) (Б.В. Керниган, Д.М. Ричи)
SergeCpp
05-08-2005, 13:27
Я НЕ УВЕРЕН, что
"размер буфера ввода ограничен и равен в ДОСе 127 байтам,
а в консольных программах под Windows 510 байтам"
ну совсем не уверен...
ГДЕ ЭТО НАПИСАНО ?
SergeCpp
05-08-2005, 13:30
НЕТ !
>>> Начни, например, с этого:
>>> "Введение в язык С++" (Бьярн Страустрап, 1995 г.)
это же ПЕРВОЕ издание !!!
Savant
Да, действительно, какое бы ограничение на буфер ввода в ОС не стояло, к библиотеке языка программирования это отношения не имеет. Она там тоже что-то буферизирует, но это абсолютно неважно, поскольку "извне" это не видно. Короче, действительно лучше пользоваться std::string. Или, если так уж надо ввести в массив char, то можно вызывать getline, у него задаётся ограничение по длине.
SergeCpp
НЕТ !
>>> Начни, например, с этого:
>>> "Введение в язык С++" (Бьярн Страустрап, 1995 г.)
это же ПЕРВОЕ издание !!!Поддерживаю. Если уж читать, то 3-е или "специальное" издание. В них по крайней мере современный C++ и даётся понятие об STL и механизмах потоков ввода вывода (это кстати, не чать STL; но чать стандартное библиотеки).
Я бы рекомендовал начинать с Кернигана и Ричи, потому что после них таких глупых ошибок как сделал Skrip не будет наверняка.
Serge, научись нажимать кнопку "редактировать сообщение"
Skrip
А я что-то не догадался ...
А почему твой работает, а мой нет?
Ты не выделил память. Ты объявил указатель на (массив) char, но ни чем его не инициализировал. Т.е. он указывает "в никуда", на какой-то мусор. А должен указывать на массив, в который будет производится чтение.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.