C ++从文件输入

时间:2013-02-18 19:37:10

标签: c++ input file-io

我必须在女童军饼干上做一个程序,输入一个.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;
}

3 个答案:

答案 0 :(得分:1)

我认为您的问题是文件girlscout.txt不在您需要的目录中供您的程序找到它。你可以通过在inFile.open调用中放入完整路径,或者在同一目录中编译和运行带有girlscout.txt文件的可执行文件来解决这个问题

答案 1 :(得分:0)

您的代码看起来正确(尽管它缺少所有错误处理)。运行应用程序时,请检查您的文件是否在工作目录中。要查看查找文件是否只是一个问题,请尝试将完整路径放到文件中,看看它是否发生了任何变化。

否则,请检查您是否拥有对文件的阅读权限。如果它仍然不起作用,您将必须检查in状态并查看其失败的原因。根据您的操作系统,您可以使用特定于操作系统的功能调查情况(Windows上的ReadFile,当您尝试打开文件时查看错误代码)。当您找到根本原因并修复它时,您可以返回到ifstream代码。

我想你的意思是:

totalAmount += boxesSold * 3.50;

答案 2 :(得分:0)

您是否在Visual Studio上编译并运行?我认为你的错误只是意味着* .exe文件会自动移动到其他地方 - 当点击“Run”时它就找不到可执行文件。