皆さん、素晴らしいプログラマのみなさん、こんにちは。 例えばコードstd :: coutのリダイレクトの範囲
std::cout << "hello" << std::endl;
「こんにちは」私はにリダイレクトしていたファイルに書き込まれます単語を実行するときになるように、私は、ファイルにstd::cout
をリダイレクトしようとしてきました。
私はfollowigプログラムがあります。
// Redirection.cpp
#include <iostream>
#include <fstream>
int main(int argc, char **argv) {
if(argc == 2){
std::cout << "Output file supplied, redirecting to output.txt" << std::endl;
std::ofstream out("C:\\Avner\\HUJI\\CPP\\ex2\\output.txt");
std::cout.rdbuf(out.rdbuf());
std::cout << "This file contains output of Redirection.cpp" << std::endl;
}
std::cout << "This should be displayed in console or in the output file, if supplied" << std::endl;
return 0;
}
を私が読むためにoutput.txt
を期待していた。
This file contains output of Redirection.cpp
This should be displayed in console or in the output file, if supplied
を代わりにそれが唯一の読み:
This file contains output of Redirection.cpp
を私は理解リダイレクトそのIそのスコープにのみ適用され、外部スコープには適用されません。
どうすればこの問題を解決できますか?必要な動作は、出力ファイルが提供されている場合に限り、すべての印刷がコンソールではなくそのファイルに書き込まれるようなものです。
無料のサポートとサポートのためのおかげでありがとう!
いいえ、あなたの 'out'オブジェクトは範囲外です。 – WhiZTiM
' std :: endl'が行う余分なものが本当に必要ですか? '' \ n ''は行を終わらせます。 –
こんにちは。私はそうは思わないが、彼らが授業で私たちに求めてきたものだ。ありがとう! – avneraggy