打印

关于读文件

[复制链接]
1443|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dfsa|  楼主 | 2012-8-26 15:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
数据文件input_data.txt中数据如下:
1 2 3 4
2 3 4 1
3 4 2 1

程序很简单,从文本文件input_data.txt中每次读入4个数据,一共读3次。如下,
#include<iostream>
#include<fstream>
using namespace std;
void read(int *mi,ifstream in){
int i;
for(i=0;i<4;i++)
in>>mi[i];
}
int main(){
ifstream i_data("input_data.txt");
int i,j,d[4];
for(i=0;i<4;i++){
read(d,i_data);
for(j=0;j<4;j++)
cout<<d[j]<<" ";
cout<<"\n";
}
i_data.close();
return 0;
}
但是程序出现如下2个问题:
1.第1次调用read函数读正常,但第二次调用read函数读入的仍然是1 2 3 4,
2.但当第二次读完,结束循环时,系统报错,
我估计是文件的读指针问题,但不知道该怎样修改程序

相关帖子

沙发
无冕之王| | 2012-8-26 15:31 | 只看该作者
整行读取 getline方法 试试

使用特权

评论回复
板凳
yybj| | 2012-8-26 15:44 | 只看该作者
典型的传值问题,这和修改两个变量的值,不传引用或者指针有啥区别?内部的变化了,外部的数据没变

使用特权

评论回复
地板
秋天落叶| | 2012-8-26 15:51 | 只看该作者
最好不要重载库函数

使用特权

评论回复
5
firstblood| | 2012-8-27 08:52 | 只看该作者
看来又是软件代码的问题了啊,建议是多步仿真了

使用特权

评论回复
6
autor| | 2012-9-7 12:36 | 只看该作者
一步一步检查,这个调试比较麻烦

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

282

主题

2404

帖子

2

粉丝