c++ - 我的输出文件未显示解决方案
问题描述
我的输出文件应该显示响应它调用的函数。该程序运行良好,但是它没有在“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
而不是进入outputFile
. 该prime()
函数返回一个bool
发送到的内容outputFile
。
如果您希望函数的输出 go to outputFile
,您可以outputFile
作为参数传递并使用它来代替cout
或使其成为全局的。
关于您的代码的更多评论:您不需要else if (p % 2 != 0)
else 语句中的完整内容。您可以只使用else
,因为p % 2
要么是 0 要么不是,没有其他选择。
此外,强烈建议在 if 语句周围使用大括号,即使它们只是一行。
推荐阅读
- php - Vue.js / Laravel - 正确处理注销
- php - 当我从 mysql、PHP GD 中提取图像时,横幅会出现奇怪的颜色
- c - C在头文件中定义一个指向外部函数的宏函数
- java - 转发:在课堂上找不到 mblogBegginer 的设置器/字段
- php - Github 没有运行 PHP
- android - NativeScript Vue Android 动态壁纸
- matlab - 寻找高斯分布的交点
- bash - Node.js:有没有办法检测我使用的是 bash 还是 cmd?
- inheritance - 使用嵌入式接口字段在 Go 中正确实现继承
- powershell - 使用powershell对CSV文件中的列进行排序