2017-04-05 16 views
1

私は次のコードを書いていますが、実行すると、出力はテキストファイルにコピーされる代わりに印刷されます。印刷システムコマンドからテキストファイルへC++

void checkText() 
{ 
    ifstream my_file("test.txt"); 
    if (my_file.good()) { 
     cout << "File exist" ; 
    } 
    else { 
     ofstream outputFile; 
     outputFile.open("test.txt"); 
     outputFile << system("head -n 1024 words.txt"); 
     outputFile.close(); 
     cout << "Done!\n"; 
    } 
} 

システムコマンドをテキストファイルに印刷するにはどうすればよいですか?

+0

の可能性のある重複した[コマンドを実行し、POSIXを使用してC++内のコマンドの出力を取得する方法?](http://stackoverflow.com/questions/478898/how-to-execute-a-command- c-using-posix内コマンド出力取得コマンド) – Logman

答えて

1

systemintを返し、実行されたコマンドからの「出力」は返しません。これを行うには

一つの方法は、あなたがしたいファイルにコマンドをリダイレクトするために、次のようになります。

std::system("head -n 1024 words.txt > test.txt"); 
0

あなたも(テキストファイルに freopenはを出力を印刷するための を使用することができます)。コマンド

freopen("input file name.txt", "r", stdin); 
freopen("output file name.txt", "w", stdout); 
関連する問題