簡體   English   中英

如何在 C 中正確 fscanf txt 文件

[英]How to properly fscanf txt file in C

例如:#1 Tutti/Leeloo/853811356; N

這是我的代碼:

typedef struct{
    int redni;
    char prezime[50+1];
    char ime[50+1];
    char osobna[50+1];
    char glasao[10];

} Biraliste;


int nBiraci=0;

while(fscanf(biralisteTxt,  "%d %[^/]/%[^/]/%[^;];%[^\n]",
             biraci[n].redni, biraci[n].prezime, biraci[n].ime, biraci[n].osobna, biraci[n].glasao  ) == 5)
{
    nBiraci++;

}

for(i=0;i<nBiraci;i++)
{

        fprintf(statistikaTxt, "%d %s %s %s %s", 
&biraci[i].redni, biraci[i].prezime, biraci[i].ime, biraci[i].osobna, biraci[i].glasao );


}

有人可以用正確的 fscanf 和 fprintf 幫助 mi,用 %d 來 fscanf redni 是否可以,或者應該是 %s。

" #%d %[^/]/%[^/]/%[^;];%[^\\n]" - 這是正確答案,謝謝

下面的代碼解決了兩個問題。

  • scanf 必須得到要填充的變量的地址,這個&biraci...
  • 索引必須是nBiraci而不是n ,因此&biraci[nBiraci]...
  • %d 前面必須有一個#
int nBiraci=0;
while(fscanf(biralisteTxt,  " #%d %[^/]/%[^/]/%[^;];%[^\n]",
             &biraci[nBiraci].redni, (char*)&biraci[nBiraci].prezime,
             (char*)&biraci[nBiraci].ime, (char*)&biraci[nBiraci].osobna,
             (char*)&biraci[nBiraci].glasao) == 5)
{
    nBiraci++;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM