所以我有一個類的任務,我必須要求用戶輸入1到3000之間的整數。然後我的程序應該能夠判斷整數是否是質數。最後,我必須將該整數放入一個文件中,但前提是它是一個素數。但我的問題是我的語法,我不確定它是否正確(很明顯,這不是因爲我不斷收到錯誤)。是否可以在函數中打開文件?如果是這樣,它會成爲一個參數? 我一直在閱讀我的教科書,並儘可能多地使用Google進行一些指導,但我仍感到迷茫。任何建議都會有幫助。找到素數,然後把素數輸入到輸出文件
編輯:我的邏輯儘可能的數字工作,但是當我添加代碼寫入文件,我現在得到錯誤。
兩個誤差是
C2440初始化:不能從常數字符轉換爲int(18行)
C2079 MYFILE:使用未定義class'std :: basic_fstream的<>炭的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 ;
}
}
}
只要稍微注意:每個素數是奇數除了2.本呼喊了一些優化... – Garmekain
「其實也很明顯這不是因爲我不斷收到錯誤」 - 嗯......關於發佈這些錯誤怎麼辦?我在Code :: Blocks上運行你的代碼而沒有'#include「stdafx.h」',它工作正常。 @Garmekain,關於優化 - 實際上有更多的方法來優化它,但這與問題無關。我極力鼓勵你通過使用'outputFile.good()'方法來測試文件打開過程是否成功。如果開放成功,它將返回true。在你發佈錯誤之後,我將着手回答這個問題,併爲類似的未來項目提供一些建議。 – Fureeish
@Fureeish這就是爲什麼它只是一個小記錄。 – Garmekain