2017-04-05 46 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++ get命令的輸出?](http://stackoverflow.com/questions/478898/how-to-execute-a-command-和得到-輸出的命令中之C-使用-POSIX) – Logman

回答

1

system返回一個int而不是執行命令的「輸出」。要做到這一點

一種方法是將命令重定向到你想要的文件:

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);