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



我的输出文件应该显示以回答它调用的函数。程序运行良好,但它不会在"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。

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

如果你想让函数的输出转到outputFile,你可以将outputFile作为参数传递并使用它而不是cout,或者使其成为全局的。

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

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

最新更新