C++ 读取文本文件为结构体参数赋值

typedef struct tagData{
char A[32];
char B[4];
char C[6];
char D[18];
char E[72];
char F[38];
char G[32];
char H[18];
char I[18];
char J[38];
char K[255];
}TData;

int Syn_Read(TData *pTData)
{
int result=0;
ifstream inf;
inf.open("1.txt", ifstream::in);

return result;
}

Txt文件数据:1111,2222,3333,4444,5555,6666,7777,8888,9999,aaaa,bbbbb

在方法中实现读取文件数据,按逗号分隔赋值给结构体参数,麻烦高手帮忙写一下,谢谢!!!
文件路径和函数所在DLL同一路径下

用 ifstream 做有格式读比较困难。
可以用 ifstream 的 getline 读1行 char [],
然后 用 sscanf() 读到 TData *pTData 里。
假定 前面 头文件 包含了:
#include<iostream>
#include<fstream>
#include <string>
using namespace std;
#include <stdio.h>
----------
添加的语句在函数里:
int Syn_Read(TData *pTData){
int result=0; ifstream inf; inf.open("1.txt", ifstream::in);
char s[1000];
inf.getline(s,1000);
sscanf(s,"%[^,],%[^,],%[^,],%[^,],%[^,],%[^,],%[^,],%[^,],%[^,],%[^,],%s",
pTData->A, pTData->B, pTData->C,pTData->D,pTData->E,pTData->F,
pTData->G, pTData->H, pTData->I,pTData->J, pTData->K);
return result;
}
主函数:
main()
{
TData t;
Syn_Read(&t);
cout << t.A << "....." << t.K <<endl;
return 0;
}
窍门 是 sscanf 那行。
温馨提示:答案为网友推荐,仅供参考
相似回答