首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >循环只从我的文本文件中读取第一行

循环只从我的文本文件中读取第一行
EN

Stack Overflow用户
提问于 2013-11-14 18:40:13
回答 3查看 2.5K关注 0票数 0

下面是我编写的代码片段。我没有包括所有的代码从我的功能,因为我没有它在我的工作计算机在我的工作计算机。我需要循环大约10行数据,收集信息,然后执行计算(煅烧数据)并输出到输出文本文件(senddata)。我的函数似乎工作得很完美,但它们没有读过我的文本文档中的第一行。我能读第一行,计算第一行,然后输出第一行。

代码语言:javascript
运行
复制
    /*    
    My input file is:

        10  0   S   Y   100
        5   7   S   N   50
        20  4   D   Y   9
        11  2   S   Y   6
        5   1   S   N   120
        31  5   S   N   500
        15  3   D   N   40
        18  4   S   N   50
        12  0   S   N   40
        26  7   D   Y   200

    */

    void getdata (int & adultget, int & childget, char & mealtypeget, char & weekendget, int & depositget, bool & error)

    ifstream infile;
    ofstream outfile;

    int main ()
        {
                infile.open("C:\\input.txt");
                outfile.open("C:\\output.txt");
                while (infile)
                        {
                            getdata(adult, child, mealtype, weekend, deposit, error);
                            calcdata(adult, child, mealtype, weekend, deposit, adultcost, childcost, totalfood, surcharge, tax, tip, totalparty, discount, totaldue);
                            senddata(adultcost, childcost, mealtype, weekend, deposit);
                        }
         infile.close();
         outfile.close();
         return 0;
         }

    void getdata (int & adultget, int & childget, char & mealtypeget, char & weekendget, int & depositget, bool & error)
        {
                infile >> adultget >> childget >> mealtypeget >> weekendget >> depositget;
                .
                .
                .
        }

我的输入文件大约有10行数据,混合了int和char。我的函数只是读取文件的第一行。有什么帮助吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-11-14 18:51:53

你应该在正确的地方检查溪流。更改getdata,它返回一个bool

代码语言:javascript
运行
复制
bool getdata (...)
{
   bool ok = infile >> adultget >> ...;

   ...

   return ok;
}

循环应该是:

代码语言:javascript
运行
复制
while (getdata(adult, child, ... ))
{

    calcdata(adult, child, ...);
    senddata(adultcost, childcost, ...);
}
票数 0
EN

Stack Overflow用户

发布于 2013-11-14 18:44:52

getdata()方法更改成人、儿童等的本地副本.如果希望main中的值更改,则需要通过引用将参数传递给它。

也就是说,无效的getdata(int & adultget,int & childget )。诸若此类

票数 0
EN

Stack Overflow用户

发布于 2013-11-14 18:49:15

我只能猜测,问题是在读取数据时发生了一些错误,例如,文件中可能有不正确的数据格式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19985681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档