首页 > 解决方案 > 我的输出文件未显示解决方案

问题描述

我的输出文件应该显示响应它调用的函数。该程序运行良好,但是它没有在“prime”函数中显示文本。选中时,输出文件仅显示 1。我相信这是因为它声明为布尔函数,并设置为返回 true。但是,我将如何获取此代码以将 Prime 中的解决方案返回到输出文件?

#include <iostream>
#include <iomanip>
#include <fstream>
#include <string>

using namespace std;
bool prime(int);    

int main()
{
    int reader;

    ifstream Infile;
    Infile.open("numlist.txt");
    ofstream outputFile;
    outputFile.open("theoutput.txt");

    while (Infile >> reader)
    {           
        outputFile << prime(reader) <<endl;    
    }
    Infile.close();
    outputFile.close();    
}

bool prime(int p)
{
    if (p % 2 == 0)
        cout << "\n" << p << "\n Is not a prime number";
    else if (p % 2 != 0)
        cout << "\n" << p << "\n is a prime number";

    return true;
}

没有错误,但是输出文件只显示 1。

标签: c++

解决方案


发生这种情况是因为在您的prime()函数中,所有输出都将进入cout而不是进入outputFile. 该prime()函数返回一个bool发送到的内容outputFile

如果您希望函数的输出 go to outputFile,您可以outputFile作为参数传递并使用它来代替cout或使其成为全局的。

关于您的代码的更多评论:您不需要else if (p % 2 != 0)else 语句中的完整内容。您可以只使用else,因为p % 2要么是 0 要么不是,没有其他选择。

此外,强烈建议在 if 语句周围使用大括号,即使它们只是一行。


推荐阅读