编程C,C ++,Java,PHP,Ruby,图灵,VB
计算机科学加拿大 
编程C,C ++,Java,PHP,Ruby,图灵,VB  

用户名:    Password: 
  登记 登记    
 理解FStream.
指数 -> 编程,C ++ -> C ++帮助
查看上一个主题 可打印的版本下载主题订阅本主题私人信息 刷新页面 查看下一个主题
作者 信息
Fezboy.




 邮政 发布: 星期二2011年4月05日下午4:24  帖子主题:了解fstream

我目前正在大学的C ++课程介绍。目前,他们让我们使用FStream来读取和写入文件。 (简单.txt文件,没什么重大)

我当前的问题就是这样。该程序从名称文件,付费率和工作时间的文件读取。当流失败时,我有一段时间循环检测。什么时候,程序完成了。但是,最后一条记录是复制的,好像流重新读取最后一行一样。有没有办法阻止这种情况发生?

谢谢你的帮助。
赞助
赞助
 赞助
 赞助
Apython1992.




 邮政 发布: 2011年4月5日星期二4:51 PM  帖子主题:Re:了解fstream

你能粘贴你的fstream代码吗?
unoho.




 邮政 发布: 星期二2011年4月5日5:01 PM  帖子主题:Re:了解fstream

我通常这样做:

代码:

ifstream filename.("file.txt");
字符串输入

if(!fileName){
CERR.<<"打开文件时出错";
返回0;
}

尽管(fileName>>input){
//这里的代码
}



通常会阻止上行的任何重复。
Fezboy.




 邮政 发布: 星期二2011年4月5日5:04 PM  帖子主题:Re:了解fstream

这是代码。

代码:

字符串名字;
    string lastName;
    double hoursWorked;
    double ratePay;
    double grossPay;
   
    bool cont = true;
   
    ifstream inData;
    ofstream outData;
   
    inData.open("hours.txt");
    if (inData.fail())
    {
        cout << "文件未找到。请再试一次";
    }
    else
    {
        while(cont)
        {
            if (inData.fail())
            {
                inData.clear();
                cout << "DONE";
                cont = false;
                inData.close();
            }
            else
            {
                inData >> firstName;
                inData >> lastName;
                inData >> hoursWorked;
                inData >> ratePay;
               
                cout << firstName << " " << lastName << endl;
               Grosspay = Hourth Worked * Ratepay;
                cout << grossPay <<endl;
            }
        }
    }
   


此外,the lop.txt文件

代码:
John Smith 25.0 15.00
玛丽琼斯33.5 17.50
Pat Brown 40.0 21.00
Jen Simpson 37.5 18.00
Gary Phillips 15.0 11.25


Gary Phillips线是重复的。
Apython1992.




 邮政 发布: 星期二2011年4月5日5:32 PM  帖子主题:Re:了解fstream

根据官方C ++文档:
引用:
如果设置了failbit或badbit,则函数返回true。这些标志中的至少一个设置了一些 除了到达文件结束时出错 在输入操作期间发生。


换句话说,iOS :: fail()不会在文件末尾提出任何标志。我相信你想要的东西更像(file.good()): http://www.cplusplus.com/reference/iostream/ios/good/
Fezboy.




 邮政 发布: 星期二2011年4月5日下午5:40  帖子主题:Re:了解fstream

我发现了这个问题。提供的文件在EOF之前有一个额外的行。清除解决问题。

谢谢所有人的帮助!
从上一个显示帖子:   
    指数 -> 编程,C ++ -> C ++帮助
查看上一个主题 告诉一个朋友可打印的版本下载主题订阅本主题私人信息 刷新页面 查看下一个主题

11  [ 6 Posts ]
跳到:    


Style:  
搜索: