Как в С++ перенаправить cin и cout в файл?

OlegXXL

сабж

Realist

мб тебе нужно это сделать средствами ОС:
myprog.exe < input.txt > output.txt

elenafish

Типа того, clog замени только на то что надо

ofstream* logfile;
streambuf* clogbuf;
logfile = new ofstream("__log.txt");
streambuf *logbuf = logfile->rdbuf;
clogbuf = clog.rdbuf;
clog.rdbuf(logbuf);

Ivan8209

more /usr/src/usr.bin/*/*.c
Читай до просветления.
Можно --- только функции main.
---
...Я работаю антинаучным аферистом...

ruler

Там C++?

Ivan8209

А это не зависит от языка программирования,
в лиспе используется тот же приём.
---
"Narrowness of experience leads to narrowness of imagination."

ruler

В лиспе есть cin и cout?

Papazyan

Не знаю, че за фигню несет Контра, но, скорее всего, он имел в виду, что нужно закрыть 0 и 1 дескрипторы и открыть на них другие файлы.

Ivan8209

Разумеется, есть.
В схеме они называются current-input-port и current-output-port,
а в общем шёпоте --- *standard-input* и *standard-output*.
---
"Narrowness of experience leads to narrowness of imagination."

Ivan8209


STANDARDS
The fopen and freopen functions conform to ANSI X3.159-1989
(``ANSI C89'').

---
"...Аллах не ведёт людей неверных."

elenangel

можно сделать так

#include <fstream.h>
.......
int main
{

ofstream cout("output.txt");
ifstream cin("input.txt");
cout<<"какая-нибудь ня"<<endl;
int a;
cin>>a;
return 0;
}

Sharp

На один короткий, но полный ответ, приходится 4 больших, но бесполезных ответа KOHTPы.
писец.

Maurog

где тут полный и короткий ответ?
могу предложить свой

freopen("gagaga.txt","w", stdout);
std::cout << "YO nigga!" << std::endl;
fclose(stdout);
Оставить комментарий
Имя или ник:
Комментарий: