我用buffer+1,输出来是地址,这是不对的把?

现有一个txt。每行仅有一个词:
No.
1
0.000000
192.168.0.100
192.168.0.102
TCP
4480
>
commplex-link
[SYN]
Seq
0
Win
64240
Len
0
MSS
1460
SACK_PERM=1
用ifstream读入该txt,循环getline存入buffer,
当buffer为'No.'时,下一行数据'1'赋值给int num,下下行数据”0.000000“赋值给float time;
当buffer为'Seq'时,下一行数据'0'赋值给int seq;
当buffer为'Win'时,下一行数据'64240'赋值给int win;
当buffer为'Len'时,下一行数据'0'赋值给int len。
我用buffer+1,输出来是地址,不对。
我本来就对输入输出流不是很理解,跪求能人解答。


呼啦一阵风
浏览 222回答 2
2回答

摇曳的蔷薇

#include<iostream>#include<fstream>#include<string>#include<iomanip>#include<assert.h>using namespace std;void main(){char buffer[50];ifstream inf("E:\\test\\test.txt");assert(inf);int num,seq,win,len;float time;while(inf.getline(buffer,50)){if(strcmp(buffer,"No.")==0){if(inf.getline(buffer,50))num=atoi(buffer);if(inf.getline(buffer,50))time=atof(buffer);}if(strcmp(buffer,"Seq")==0){if(inf.getline(buffer,50))seq=atoi(buffer);}if(strcmp(buffer,"Win")==0){if(inf.getline(buffer,50))win=atoi(buffer);}if(strcmp(buffer,"Len")==0){if(inf.getline(buffer,50))len=atoi(buffer);}}inf.close();cout<<"num:"<<num<<endl;cout<<setiosflags(ios::fixed)<<setprecision(6)<<"time:"<<time<<endl;cout<<"seq:"<<seq<<endl;cout<<"win:"<<win<<endl;cout<<"len:"<<len<<endl;}

撒科打诨

buffer 用pointer 不要用数组你仔细复习一下pointer的用法,int *p = 1;cout << p <<endl;cout << *p <<endl; 出来的是不一样的东西。
打开App,查看更多内容
随时随地看视频慕课网APP