私は1〜3000の整数をユーザに求めなければならないクラスの割り当てをしています。整数は素数であるかどうか。最後に、その整数をファイルに入れる必要がありますが、それは素数でなければなりません。しかし、私の問題は私の構文です、私はそれが正しいかどうかは確かではありません。関数内でファイルを開くことは可能ですか?もしそうなら、それはパラメータになりますか? 私は教科書を見て、できるだけガイダンスをしていますが、まだ失われていると感じています。どんな助言も役に立ちます。素数を見つけて素数を出力ファイルに入れよう
編集:私のロジックは数字の通りですが、ファイルに書き込むコードを追加するとエラーになります。
2つのエラーは、初期化
C2440は、(ライン18)をintに一定のチャーへ変換することができない
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