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

typedefstructtagData{charA[32];charB[4];charC[6];charD[18];charE[72];charF[38];charG[... 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同一路径下
展开
 我来答
金色潜鸟
推荐于2016-08-20 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5733万
展开全部
用 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 那行。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式