[英]how to save my c++ compiler output in created text file?
我正在使用 C++ 制作一個簡單的編譯器,但輸出僅顯示在我的控制台窗口中!
class Scanner{
private:
ifstream f;
Token check_reserved(string s){
if (s == "program") return PROGRAM_SY;
else if (s == "is")return IS_SY;
else if (s == "begin")return BEGIN_SY;
else if (s == "end")return END_SY;
else if (s == "var")return VAR_SY;
}
void display_tokens(void){
Token t;
if (f.eof())cout << "end_of_file " << endl;
while (!f.eof()){
t = get_token();
switch (t){
case PROGRAM_SY: cout << "program token" << endl; break;
case IS_SY: cout << "is token" << endl; break;
case BEGIN_SY: cout << "begin token" << endl; break;
case END_SY: cout << "end token" << endl; break;
}
}
}
};
int main(){
ofstream myfile;
myfile.open("example.txt");
myfile << SC.display_tokens();
myfile.close();
string Filename;
cout << "Enter Name of input File : ";
cin >> Filename;
Scanner SC(Filename);
SC.display_tokens();
SC.~Scanner();
}
我希望我的代碼將在我的控制台窗口中打印我的輸出,並將其保存在文本文件中。 這里有什么問題,獲取輸出的正確代碼是什么?
一個問題是函數需要返回值才能將值輸出到流。
您的函數聲明表示該函數不返回值:
void display_tokens(void)
但是,您可以像使用該函數一樣返回一個值:
myfile << SC.display_tokens();
我建議您查看編譯器理論書中的“函數”主題。 另外,請查看您最喜歡的 C++ 書中的“函數”。
您可以更改功能:
void display_tokens(std::ostream& my_file)
{
//...
my_file << "Here are the tokens:\n";
//...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.