[英]Read strings in C from txt file
我正在嘗試從txt文件讀取一些字符串。 每行有一個5位數字,一個全名,占51個字符(包括空格),兩個城市名稱,每個占11個字符(包括空格)和一個數字。 例:
12345António Manuel Silva Mendes Frankfurt Varsovia 1
現在,我可以掃描前兩個字符串,但是無法掃描城市名稱或最后一個數字。
這是結構:
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]);
}
我不確定您要使用data變量做什么,但這將為您提供一個整數。 請注意,biBuf和dataBuf變量在循環中分配,因此每次將它們設置為零。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.