0

プログラムの出力を.txtファイルとコンソールにミラーリングする方法を見つけようとしています。私はこれに比較的慣れていないので、迷っています..助けてください、これが私がこれまでに持っているものです.

#include <iostream>
#include <fstream>
#include <cmath>
#include <cstdlib>

using namespace std;

bool isPrime (int);

int main ()
{
    int numbers;
    ifstream inputFile;
    //open the file
    inputFile.open("22.txt");
    //output to file
    ofstream outFile;
    outFile.open("PrimeNumbers.txt");
    while(inputFile >> numbers)
        if(isPrime(numbers))
            outFile << numbers << endl;
            cout << numbers << " is a prime number." << endl;
} //end of main function
//function formula
bool isPrime (int num)
{
    int count=0;
    for (int numb=2; 
        numb<=num/2; 
        numb++)
    {
        if(num%numb==0)
            count++;
    }
    if (count>0)
        return false;
    else
        return true;
}
4

1 に答える 1

1

私にとって際立っているエラーの1つは次のとおりです。

while(inputFile >> numbers)
    if(isPrime(numbers))
        outFile << numbers << endl;
        cout << numbers << " is a prime number." << endl;

ブロック (中括弧で定義) がないため、このスニペットは次と同等です。

while(inputFile >> numbers)
{
    if(isPrime(numbers))
    {
        outFile << numbers << endl;
    }
    cout << numbers << " is a prime number." << endl;
}

「cout」ステートメントが条件の影響を受けていないことがわかりますか? あなたが書きたかったのは:

while(inputFile >> numbers)
{
    if(isPrime(numbers))
    {
        outFile << numbers << endl;
        cout << numbers << " is a prime number." << endl;
    }
}

(さらにヘルプが必要な場合は、質問の下にある私のコメントを参照して、問題のより正確な定義を要求してください)

于 2012-11-14T05:45:17.883 に答える