C++ 无操作员<&书信电报;匹配这些操作数visual c++;
我有一个错误消息,我不知道如何摆脱它。我试图让我的程序要求用户输入文件名,然后将1-100的素数列表输出到该文件中。如果文件是我指定的“ofstream outputfile”,我可以让它工作,但当我将其更改为输入文件时,会弹出错误。它在输入文件后的第28行。我已经检查了关于这个的其他问题,他们都说包括标题,我已经做了,但它仍然不能解决这个问题。我是编程新手,所以我感谢你的帮助和耐心C++ 无操作员<&书信电报;匹配这些操作数visual c++;,c++,C++,我有一个错误消息,我不知道如何摆脱它。我试图让我的程序要求用户输入文件名,然后将1-100的素数列表输出到该文件中。如果文件是我指定的“ofstream outputfile”,我可以让它工作,但当我将其更改为输入文件时,会弹出错误。它在输入文件后的第28行。我已经检查了关于这个的其他问题,他们都说包括标题,我已经做了,但它仍然不能解决这个问题。我是编程新手,所以我感谢你的帮助和耐心 #include "stdafx.h" #include <iostream> #include &
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
bool isPrime(int);
int main()
{
ifstream inputFile;
string filename;
cout << "Enter a filename: ";
cin >> filename;
inputFile.open(filename);
for (int i = 1; i <= 100; i++)
{
isPrime(i);
while (isPrime(i) == true)
{
inputFile << i << endl; //ERROR IS HERE!
break;
}
}
inputFile.close();
system("pause");
return 0;
}
bool isPrime(int n)
{
bool isPrime = true;
for (int i = 2; i<n; i++)
{
double x = n%i;
if (x == 0.0)
isPrime = false;
}
return isPrime;
}
#包括“stdafx.h” #包括 #包括 #包括 使用名称空间std; bool-isPrime(int); int main() { ifstream输入文件; 字符串文件名; cout>文件名; inputFile.open(文件名); 对于(int i=1;C++ <代码> i > p> >运算符< /code是用于输出到输出流的用户(如COSTDED::OFFROS/CODE),而CODECONTROR ><代码>用于输入流(如<代码> STD::IFSturi
)。
因此,将替换为ifstream
将解决此问题。如果您想在文件中写入内容ofstream
与其声明一个ifstream对象,不如声明一个ofstream对象来解决您的问题s/intput/output/您需要来写入一个文件,而不是std::ofstream
。顺便说一句,这个std::ifstream
什么都不做,请更改:isPrime(i);
到一个while(isPrime(i)==true)
语句并删除if
。谢谢@DimChtz。我已经完成了您建议的所有更改,现在程序运行良好。“让舒尔删除该endl”为什么?向文件中写入新行是有效的。因此,如果我想让用户输入文件名并保存它,我需要使用ifstream,然后使用ofstream将我的函数写入指定的文件?@tim_weaver No,break;
和std::ifstream
(std::ofstream
)存在以读取和写入文件。当您想要读取用户输入时,可以使用std::fstream
,std::cin
,等等。如果您必须读取和写入文件,则必须声明fstream的对象std::getline