gpt4 book ai didi

c - 从txt文件中读取C中的字符串

转载 作者:太空宇宙 更新时间:2023-11-04 04:19:59 24 4
gpt4 key购买 nike

我正在尝试从 txt 文件中读取一些字符串。每行有一个5位数字,一个占51个字符(包括空格)的全名,2个城市名称,每个城市名称占11个字符(包括空格),一个数字。示例:

12345António Manuel Silva Mendes                        Frankfurt  Varsovia    1

我现在可以扫描前 2 个字符串,但我无法扫描城市名称,也无法扫描最后一个数字。

结构如下:

typedef struct bilhete{

int BI;
char nome[51];
char partida[11];
char chegada[11];
int data[2];

}BILHETE;

这是我读取文件的方式

while(!feof(fp)){

fscanf(fp,"%d%51[^\n]s%11c%11c%d\n", &bilhete.BI, bilhete.nome, bilhete.partida, bilhete.chegada, &bilhete.data);

我做错了什么?当我打印城市名称时,什么也没有出现!

最佳答案

因为你有固定的列,我会考虑只读入数据并用类似的东西做我自己的扫描:

char linein[200];
char *p;

while (fgets(linein, sizeof(linein), fp))
{
char biBuf[10]={0};
char dataBuf[10]={0};

p=linein;
memcpy(biBuf,linein,5);
bilhete.BI=atoi(biBuf);
p+=5;
memcpy(bilhete.nome,p,51);
p+=51;
memcpy(bilhete.partida,p,11);
p+=11;
memcpy(bilhete.chegada,p, 11);
p+=11;
memcpy(dataBuf,p,2);
bilhete.data[0]=atoi(dataBuf);
printf("%.51s %d\n",bilhete.nome, bilhete.data[0]);
}

我不确定你想用数据变量做什么,但这会给你一个整数。请注意,biBuf 和 dataBuf 变量是在循环中分配的,因此它们每次都设置为零。

关于c - 从txt文件中读取C中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47685150/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com