c++ 如何用ifstream读取文件

c++ 如何用ifstream读取文件,第1张

分类: 电脑/网络 >>程序设计 >>其他编程语言

问题描述:

ifstream data_read("test.txt")

if (!data_read)

{

cerr <<"读取时打开文件出错!" <<endl

}

else

{

char ch[100],name,memo[100]

int age[100]

int i=1

while (!data_read.eof())

{

data_read >>ch

sscanf(ch,"%s %d %s",&name,&age[i],&memo)

cout <<"name="哗迅物 <<name <<endl

cout <<"age=" <<age[i] <<endl

cout <<"memo=" <<memo <<endl

cout <<i<<"ch=" <<ch <<endl

i++

}

}

data_read.close()

我的test.txt文件内容是这样的:

姓名:hehe年龄:12备注:123

姓名:haihai年龄:18备注:12ff

姓名:aa年龄:22备注:ff11

我想把这些内容能够按照姓名,年龄,备注这样的不同,放在不同的数组里。。

现在我写的那段程序是出乱液错了。。我也不知道怎么昌凳改,请高手帮忙,谢谢

我是菜鸟

解析:

不能用sscanf(ch,"%s %d %s",&name,&age[i],&memo)

来拆分你的记录,得用strstr(ch, "姓名:")这样的方法来定位,然后取值,例如:

char * p1 = strstr(ch, "姓名:")

char * p11 = p1 + strlen("姓名:")

char * p2 = strstr(ch, "年龄:")

char * p21 = p2 + strlen("年龄:")

char * p3 = strstr(ch, "备注:")

char * memo = p3 + strlen("备注:")

char name[p2-p11+1]

strncpy(name, p11, p2-p11)

char age[p3-p21+1]

strncpy(age, p21, p3-p21)

#include <iostream>碧正

#include <好慧塌fstream>

using namespace std

int main()

{

string s

ifstream infile("txt.txt")

if(!infile) return 1

int n=0

while(!infile.eof())

{

string times,date

infile>>times>>友圆date

n++

if(n%2==0)

{

cout<<times<<" "<<date<<endl

}

}

return 0

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12245150.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存