2012-06-16 7 views
1

Я как бы растерялся из-за потока. ofstream унаследовано от ostream. И это также унаследованный метод «оператор < <» от ostream.Использование ofstream

ofstream x; 
    x << "hello world" << endl; 
    //cout << "hello world" << endl; 

    system("pause"); 
    return 0; 

Приведенный выше код клипа пытается использовать объект ofsream для вывода «привет мир» на терминал так же, как соиЬ сделал.

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

Спасибо,

+0

ofstream в основном используется, когда вы хотите вывести в файл. 'f' instream указывает файл. – cppcoder

+0

Я понимаю, что streamstream используется для записи в файл. Мне просто любопытно, если поток унаследован от ostream. Он также должен быть способен писать на терминал. – Fihop

+0

@FihopZz: Возможно, это возможно, но это не по умолчанию. В заголовках iostream есть некоторые специфические для платформы вещи, которые выполняются, чтобы установить 'cout' для записи на терминал. Это происходит не просто путем вызова конструктора по умолчанию, который вы делаете с вашим объектом 'x'. –

ответ

0

Это было давно, но IIRC потока является output_file-поток, который потоков данных в открытый файл. Для объекта onstream для фактической печати на терминал вам нужно будет открыть его/dev/console или что-то подобное. Простой экземпляр ofstream, вероятно, не открывает/dev/console b/c, у вас уже есть cout.

2

ofstream является абстракцией для файлового объекта. Чтобы иметь возможность создать файл, вам необходимо передать имя файла. Если вы не создали объект по умолчанию ofstream (именно поэтому он компилируется). Сам по себе такой объект не очень полезен. Попробуйте:

ofstream x("out.txt"); 
x << "hello world" << endl; 

... 
-1

http://en.wikipedia.org/wiki/Input/output_%28C%2B%2B%29

<iostream> contains the definition of basic_iostream class template, 
which implements formatted input and output 
<fstream> contains the definitions of basic_ifstream, basic_ofstream and 
basic_fstream class templates which implement formatted input, output and input/output 
on file streams. 
Смежные вопросы