以下代碼是較大的翻譯程序的一部分。下面的代碼要求用戶輸入一行,而不是隻寫回來。有沒有一種方法,而不是每次寫一行,我可以在標準輸入中傳遞整個文件等'translate.txt',程序可以逐行寫回,並在行結束時產生錯誤到達了 ?將文本文件傳遞到標準輸入
#include <iostream>
#include <string.h>
#include<stdio.h>
#include<fstream>
using namespace std;
using namespace std;
void PL() {
char line[BUFSIZ];
while(cin.good()) {
cout<<"Type line now"<<endl;
cout<<"\n";
cin.getline(line, sizeof(line));
cout<<"\n"<<endl;
string mystring = string(line);
// supposed to Parsing string into words and translate//
//but just reading back input for now//
cout<<"You typed:"<<mystring<<endl;
cout<<"\n"<<endl;
}
}
int main() {
PL();
}
是但它是外部的C++。這取決於程序運行的shell。在Linux BASH中,您可以管理數據和cat文件。所以如果我想發送'myfile.txt'到'myprog'的標準輸入,我會像這樣運行它:'cat myfile.txt | myprog'。注意管道符號是'|',它將管道傳輸到標準輸入。 – Galik 2014-09-23 01:51:21
是的,我應該在SSH shell上運行這個程序,通過編寫:./cat 寫入./cat example.txt不起作用,即使example.txt與安全shell中的prog位於相同的目錄中。 – slk 2014-09-23 01:59:37