0

我必须在女童子军饼干上做一个程序,输入一个 .txt 文件,其中包含客户的名字、购买的盒子数量和 cookie 的名称。盒子的价格是 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状态并查看它失败的原因。根据您的操作系统,您可以使用特定于操作系统的函数来调查情况(Windows 上的 ReadFile,在您尝试打开文件时查看错误代码)。当您找到根本原因并修复它时,您可以返回到 ifstream 代码。

我猜你的意思是:

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