VC++ MFC怎样读取txt内容到程序的结构体?
比如有一个a.txt,里边存有指定格式的数据,怎样读取并且存到程序的结构体lianxiren{CStringname;CStringphone;CStringtel;}l...
比如有一个a.txt,里边存有指定格式的数据,怎样读取并且存到程序的结构体lianxiren{CString name;CString phone;CString tel;}lxr[100];中以待处理?请稍微说多些说清楚些,我会使劲加分的,真的!!
展开
2个回答
展开全部
MFC的文件类CFile面向的是二进制文件,对文本文件没有提供特别的支持。你可以用标准C++的文件类,或者C语言的文件处理函数,再转到MFC中。
标准C++的写法:
#include <fstream>
using std::ifstream;
......
ifstream fin("a.txt");//打开文件
int cnt=0;
char name[30], phone[20],tel[20];
while(cnt<100){
fin >> name >> phone >> tel;
if(!fin) break;//读取结束
lxr[cnt].name=name, lxr[cnt].phone=phone, lxr[cnt].tel=tel;
++cnt;
}
fin.close();
......
C语言的写法:
#include <stdio.h>
......
FILE* fp=fopen("a.txt","r");//打开文件
int cnt=0;
char name[30], phone[20],tel[20];
while(cnt<100){
fscanf(fp,"%s%s%s",name,phone,tel);
if(feof(fp)) break;//读取结束
lxr[cnt].name=name, lxr[cnt].phone=phone, lxr[cnt].tel=tel;
++cnt;
}
......
标准C++的写法:
#include <fstream>
using std::ifstream;
......
ifstream fin("a.txt");//打开文件
int cnt=0;
char name[30], phone[20],tel[20];
while(cnt<100){
fin >> name >> phone >> tel;
if(!fin) break;//读取结束
lxr[cnt].name=name, lxr[cnt].phone=phone, lxr[cnt].tel=tel;
++cnt;
}
fin.close();
......
C语言的写法:
#include <stdio.h>
......
FILE* fp=fopen("a.txt","r");//打开文件
int cnt=0;
char name[30], phone[20],tel[20];
while(cnt<100){
fscanf(fp,"%s%s%s",name,phone,tel);
if(feof(fp)) break;//读取结束
lxr[cnt].name=name, lxr[cnt].phone=phone, lxr[cnt].tel=tel;
++cnt;
}
......
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询