求助:c++从txt文件中逐行读取数据,并且分别保存

zhangshuo0113 2011-10-20 03:41:26
txt文档中每一行有两个数据,需要逐行分别存储
txt文件如下
8.5 8.9
3.4 5.8
.......
9.5 5.6
每一行两个数据,用空格分开,我现在需要把每一行中的两个数据存到两个变量中,并且逐行读取。这个要如何实现呢?
...全文
2455 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
酱油党 2011-10-23
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 namelij 的回复:]
fgets搞定
[/Quote]
To:
namelij
//楼上的问一下fgets怎样能够读取非第一行的数据,谢谢……
  • 打赏
  • 举报
回复
fgets搞定
机智的呆呆 2011-10-22
  • 打赏
  • 举报
回复

#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
using namespace std;
template<typename T>
string ToString(T var)
{
stringstream ss;
ss<< var;
return ss.str();
}
int main()
{
string buffer;
double str1;
string str2;
stringstream ss;
for (int i=0;i<10;i++)
{
string fileName="left"+ToString(i)+".txt";
ifstream inputFile(fileName.c_str());
while(getline(inputFile,buffer))
{
ss.clear();
ss.str(buffer);
ss>>str1>>str2;
cout<<str1<<" "<<str2<<endl;
}
}
}


zhangshuo0113 2011-10-22
  • 打赏
  • 举报
回复
非常感谢各位的回帖
如果我有10个文件,要连续读入
文件名是left1.txt
left2.txt
left3.txt
.....
left10.txt
要求还是文件中的一行有两个数据,存储到两个数组中。这样要怎么实现?
yujie_v 2011-10-20
  • 打赏
  • 举报
回复
如果知道是浮点数,用空格或者tab分割。直接用ifstream读入就可以了。非常简单
ozil1236 2011-10-20
  • 打赏
  • 举报
回复
若是BCB,可以用StringList逐行读取txt文件,再截取数据就可以了
机智的呆呆 2011-10-20
  • 打赏
  • 举报
回复

#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
using namespace std;
int main()
{
string buffer;
double str1;
string str2;
stringstream ss;
ifstream inputFile("d:\\data.txt");
while(getline(inputFile,buffer))
{
ss.clear();
ss.str(buffer);
ss>>str1>>str2;
cout<<str1<<" "<<str2<<endl;
}

}
turing-complete 2011-10-20
  • 打赏
  • 举报
回复
zhang2050jian 2011-10-20
  • 打赏
  • 举报
回复
学习,学习!
5t4rk 2011-10-20
  • 打赏
  • 举报
回复
#include <stdio.h>
void getData(float data[100][2])
{
FILE *fp;
int i = 0, j = 0;
fp = fopen("db.txt", "r");
if(fp == NULL)
{
printf("cannot open file!\n");
return;
}
while(!feof(fp))
{
if(j != 1)
fscanf(fp, "%f ", &data[i][j++]);//注意此处有个空格
else
{
fscanf(fp, "%f", &data[i][j]);
j = 0;
++i;
}
}
fclose(fp);
}
int main()
{
float data[100][2];
int i, j;
getData(data);
for(i = 0; i < 100; ++i)
{
for(j = 0; j <2; ++j)
{
printf("%f ", data[i][j]);
}
printf("\n");
}
return 0;
}

//仅供参考 楼主
camelisi 2011-10-20
  • 打赏
  • 举报
回复
fstream
getline(str, size, '\n');这样读取了一行
你再根据你文件内容去判断是字符串还是数字还是什么
中间用什么隔开之类的
神的理想 2011-10-20
  • 打赏
  • 举报
回复
IO 读写相关的东西,
IOSTREAM
谭浩强的 C++面向对象程序设计 中 详细介绍了 各种访问方法。
zhangshuo0113 2011-10-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zhouxicai 的回复:]
关注 mark
[/Quote]
什么意思呢?不明白
神的理想 2011-10-20
  • 打赏
  • 举报
回复
关注 mark

65,186

社区成员

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

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