24小时热门版块排行榜    

查看: 3336  |  回复: 4

muchong_li

新虫 (小有名气)

[求助] C++从.txt文件读取数据,每行读取不同数量的数据并赋值给变量 已有2人参与

假定“data.txt"文件存储数据格式如下:
1.1  //第一行只有一个数据,赋值给double变量a1
2.2    2.2    //第二行有两个数据,以空格间隔,赋值给double变量b1,b2
3.3    3.3    3.3 //第三行有三个数据, 以空格间隔,赋值给double变量c1,c2,c3

如何实现数据读取并给变量赋值?每行都只读取前边的数据,忽略行尾注释。数据量很少,可逐行处理。
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

masterli1688

铜虫 (初入文坛)

【答案】应助回帖

感谢参与,应助指数 +1
这么简单好意思提问

发自小木虫IOS客户端
to be success
2楼2016-01-04 00:51:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zzm_Fletcher

木虫 (初入文坛)

Strider

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
muchong_li: 金币+20, ★★★很有帮助, 谢谢! 2016-01-04 13:06:31
先把文件读入内存,然后逐个提取所需数据,请参考 MSDN 上 strtok 函数的用法举例。
gump
3楼2016-01-04 07:38:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

muchong_li

新虫 (小有名气)

成功了,写下来供有需参考,虽然略繁琐,但能完成我想要的功能。
ifstream ifs("data.txt";
string temp1,temp2,temp3;
char char1[200],char2[200],char3[200];
char seps[]= " ";
char *ca1;
double a1;
char *cb1,*cb2;
double b1,b2;
char *cc1,*cc2,*cc3;
double c1,c2,c3;

getline(ifs,temp1);//获取文件第一行,并存储在字符串temp1中
strcpy(char1,temp1.c_str());//将temp1中字符串复制到字符数组char1中
ca1= strtok( char1, seps );//读取char1中第一个数据字符串,并存储于字符数组ca1中
a1=atof(ca1);//将字符数组ca1对应的数据赋值给浮点型变量a1中

getline(ifs,temp2);
strcpy(char2,temp2.c_str());
cb1= strtok( char2, seps ); b1=atof(cb1);
cb2= strtok( NULL, seps ); b2=atof(cb2);

getline(ifs,temp3);
strcpy(char3,temp3.c_str());
cc1= strtok( char3, seps ); c1=atof(cc1);
cc2= strtok( NULL, seps ); c2=atof(cc2);
cc3= strtok( NULL, seps ); c3=atof(cc3);
4楼2016-01-04 13:04:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

muchong_li

新虫 (小有名气)

引用回帖:
4楼: Originally posted by muchong_li at 2016-01-04 13:04:09
成功了,写下来供有需参考,虽然略繁琐,但能完成我想要的功能。
ifstream ifs("data.txt";
string temp1,temp2,temp3;
char char1,char2,char3;
char seps[]= " ";
char *ca1;
  ...

第一行 ifstream ifs("data.txt";
5楼2016-01-04 13:07:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 muchong_li 的主题更新
信息提示
请填处理意见