簡體   English   中英

如何在創建的文本文件中保存我的 C++ 編譯器輸出?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM