所以我有一个类的赋值,我必须向用户询问1到3000之间的整数。然后我的程序应该能够判断整数是否是素数。最后,我必须将该整数放入一个文件中,但前提是它只是一个素数。但我的问题是我的语法,我不确定它是否正确(实际上很明显,这不是因为我不断收到错误)。是否可以在函数中打开文件?如果是这样,它会成为一个参数? 我一直在阅读我的教科书和谷歌搜索,以获得一些指导,但我仍然感到迷茫。任何建议都会有帮助。
编辑:我的逻辑就数字而言,但是当我添加代码写入文件时,我现在遇到错误。
这两个错误是
C2440初始化:无法从常量char转换为int(第18行)
C2079 myfile:使用未定义的class'std :: basic_fstream<> char,std :: char_traits>'
到目前为止,这是我的代码!
// Project 5.cpp : Defines the entry point for the console application.
//
#include <fstream>
#include "stdafx.h"
#include <iostream>
using namespace std;
//functions
void prime(int x);
//variables
int x=0;
int i;
char answer;
fstream myfile("castor_primes.txt");
int main()
{
do
{
cout << "Enter an integer between 1 and 3000 \n";
cin >> x;
if (x == 1)
{
cout << x << " is not a prime number.\n";
}
else if (x < 1 || x>3000)
{
cout << x << " is an invalid number. \n";
}
else
{
prime(x);
}
cout << "Do you want to enter another number? Y/N \n";
cin >> answer;
} while (answer == 'y' || answer == 'Y');
myfile.close();
return 0;
}
void prime(int x)
{
if (x == 2)
{
cout << "Yes, " << x << " is Prime\n";
}
else
{
for (i = 2; i < x; i++)
{
if (x%i == 0)
{
cout << x << " is not a prime number\n";
break;
}
}
if (x == i)
{
cout << "Yes, " << x << " is Prime\n";
myfile << x ;
}
}
}
答案 0 :(得分:-1)
#include "stdafx.h"
包含预编译的头文件。检查该文件是否存在以及是否正确(取决于您看到的错误)。
没有理由将outputFile传递给prime()
函数,因为您在函数中打开和关闭它。虽然它可以正常工作。
它是函数调用的参数(如果这是你的问题)并且是一个全局变量,因为它是在main()
函数之外定义的。
正如其他人建议的那样,如果删除了前面提到的#include "stdafx.h"
,代码就会起作用,但我不确定它是如何影响Visual Studio中的编译的。