为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

呼啦一阵风 2022-05-26 15:11:18
现有一个txt。每行仅有一个词:No.10.000000192.168.0.100192.168.0.102TCP4480>commplex-link[SYN]Seq0Win64240Len0MSS1460SACK_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,输出来是地址,不对。我本来就对输入输出流不是很理解,跪求能人解答。
查看完整描述

2 回答

?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

#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;
}



查看完整回答
反对 回复 2022-05-30
?
撒科打诨

TA贡献1934条经验 获得超2个赞

buffer 用pointer 不要用数组
你仔细复习一下pointer的用法,
int *p = 1;
cout << p <<endl;
cout << *p <<endl; 出来的是不一样的东西。

查看完整回答
反对 回复 2022-05-30
  • 2 回答
  • 0 关注
  • 203 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号