读文件的问题

vcgaoshou 2012-08-25 02:38:08
数据文件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.但当第二次读完,结束循环时,系统报错,
我估计是文件的读指针问题,但不知道该怎样修改程序
...全文
73 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
漫步者、 2012-08-25
  • 打赏
  • 举报
回复
还有一点是,最好不要重载库函数!
漫步者、 2012-08-25
  • 打赏
  • 举报
回复
还有疑问就继续追问吧
漫步者、 2012-08-25
  • 打赏
  • 举报
回复

#include<iostream>
#include<fstream>
using namespace std;
void readFile(int *mi,ifstream &in){//使用个引用,不要产生临时对象.
int i;

for(i=0;i < 4;i++)
in>>mi[i];
}
int main(){
ifstream i_data;
i_data.open("D:input_data.txt");
int i,j,d[4];

for(i=0;i<4;i++){
readFile(d,i_data);
for(j=0;j<4;j++)
cout<<d[j]<<" ";
cout<<"\n";
}
i_data.close();
return 0;
}
兆帅 2012-08-25
  • 打赏
  • 举报
回复
整行读取 getline方法 试试
Gloveing 2012-08-25
  • 打赏
  • 举报
回复
典型的传值问题,这和修改两个变量的值,不传引用或者指针有啥区别?内部的变化了,外部的数据没变
void swap(int a ,int b)
{

}
=========
void read(int *mi,ifstream in){
int i;
for(i=0;i<4;i++)
in>>mi[i];
}

64,676

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧