0

ガールスカウトのクッキーで、顧客の名、購入した箱の数、クッキーの名前を含む.txtファイルを入力するプログラムを実行する必要があります。ボックスの価格は3.50ドルです。プログラムでは、顧客名、販売されたボックス、Cookieの名前、および未払い額を表示する必要があります。そして最後に、顧客数、販売されたボックスの合計、および未払いの合計金額を表示します。これは私がこれまでに持っているものであり、なぜ実行されないのか、少なくともファイルが見つからないと言うのかわかりません。プロジェクトフォルダに.txtファイルを作成しました。助けていただければ幸いです。私が得るエラーは「プログラムを開始できません...システムは指定されたファイルを見つけることができません」です。私のファイルは正しい場所にあると確信しています

#include <iomanip>
#include <string>
#include <fstream>
#include <iostream>
using namespace std;

int main()
{
    ifstream inFile;
    //Declare Variables

    string firstName;
    string cookieName;

    int boxesSold;
    int numCustomers;
    double amountDue;
    int totalCustomers;
    int totalBoxesSold = 0;
    double totalAmount = 0;

    inFile.open("girlscout.txt");
    if (inFile)
    {
        cout << "Customer     Boxes     Cookie Name" << endl;
        cout << "Name                              " << endl;

        while(!inFile.eof())//Not end of file
        {
            inFile >> firstName;
            inFile >> boxesSold;
            inFile >> cookieName;

            totalBoxesSold += boxesSold;
            totalAmount = boxesSold * 3.50;

            cout << setprecision(2) << fixed << showpoint;
            cout << setw(2) << firstName
            << right << setw(7) << boxesSold
            << cookieName << endl;
        }

        cout << "Total Boxes Sold: " << totalBoxesSold;
        cout << "Total Amount: " << totalAmount;
        inFile.close();
    }

    else
    {
        cout << "Could not open file " << endl;
    }

    system("pause");
    return 0;
}
4

3 に答える 3

1

あなたの問題は、ファイル girlscout.txt が、プログラムが見つけるために必要なディレクトリにないことだと思います。これを修正するには、inFile.open 呼び出しにフル パスを指定するか、実行可能ファイルを同じディレクトリにある girlscout.txt ファイルでコンパイルして実行します。

于 2013-02-18T19:43:09.300 に答える
0

Visual Studio でコンパイルして実行していますか? あなたのエラーは、 *.exe ファイルが自動的に別の場所に移動されたことを意味しているだけだと思います-「実行」を押すと、実行可能ファイル自体が見つかりません。

于 2013-02-18T21:54:09.597 に答える
0

コードは正しいように見えます (ただし、すべてのエラー処理が欠けています)。アプリケーションを実行するときに、ファイルが作業ディレクトリにあることを確認してください。ファイルの検索に問題があるだけかどうかを確認するには、ファイルへの完全なパスを入力して、何かが変わるかどうかを確認してください。

それ以外の場合は、ファイルに対する読み取り権限があることを確認してください。それでも機能しない場合は、in状態を確認して、失敗した理由を確認する必要があります。OS によっては、OS 固有の機能 (Windows では ReadFile、ファイルを開こうとしたときにエラー コードを表示する) を使用して状況を調査できます。根本原因を見つけて修正したら、ifstream コードに戻ることができます。

そして、私はあなたが意味すると思います:

totalAmount += boxesSold * 3.50;
于 2013-02-18T19:45:08.203 に答える