请教怎样把文本文件的内容保存到结构体数组
请教有文本文件 A.TXT,内容如下
1 XX.DBF 10000000
1 YY.DBF 12000000
2 XXXX.DBF 680000000
2 YYYY.DBF 12345678
2 AA.DBF 55555555
3 BBB.DBF 666666666
3 CCC.DBF 871332
其中第一列和第3列都是整型
怎样读取这个文本文件并把这3列的内容保存到结构体数组呢?
[解决办法]
这是读一行的
std::ifstream file;
file.open("f:\\test.txt");
char buf[1024]={0},buffer[20]={0},tem[20]={0};
file.getline(buf,sizeof(char[1024]));
int i=0,j=0,number1,number2;
while(buf[i]!=9)
{
buffer[j++]=buf[i++];
}
i++;j=0;
number1=atoi(buffer);
memset(buffer,0,sizeof(char[20]));
while(buf[i]!=9)
{
buffer[j++]=buf[i++];
}
i++;j=0;
memcpy(tem,buffer,sizeof(char[20]));
memset(buffer,0,sizeof(char[20]));
while(buf[i]!=13)
{
buffer[j++]=buf[i++];
}
number2=atoi(buffer);
//请教有文本文件 A.TXT,内容如下
// 1 XX.DBF 10000000
// 1 YY.DBF 12000000
// 2 XXXX.DBF 680000000
// 2 YYYY.DBF 12345678
// 2 AA.DBF 55555555
// 3 BBB.DBF 666666666
// 3 CCC.DBF 871332
#include <stdio.h>
#define MAXL 100
#define MAXC 40
struct DATA {
int no;
char name[13];
int recnum;
} d[MAXL];
FILE *f;
int i,n;
char ln[MAXC+1];
int main() {
f=fopen("A.TXT","r");
if (NULL==f) {
printf("Can not open file A.TXT!\n");
return 1;
}
i=0;
n=0;
while (1) {
if (NULL==fgets(ln,MAXC,f)) break;
n++;
if (3==sscanf(ln,"%d%12s%d",&d[i].no,d[i].name,&d[i].recnum)) {
i++;
if (i>=MAXL) {
printf("Too many datas(>%d datas) ignored.\n",MAXL);
break;
}
} else {
printf("Line %d format error:%s",n,ln);
}
}
fclose(f);
n=i;
for (i=0;i<n;i++) {
printf("%d %-12s %d\n",d[i].no,d[i].name,d[i].recnum);
}
return 0;
}
//1 XX.DBF 10000000
//1 YY.DBF 12000000
//2 XXXX.DBF 680000000
//2 YYYY.DBF 12345678
//2 AA.DBF 55555555
//3 BBB.DBF 666666666
//3 CCC.DBF 871332
//