如何在C中正确fscanf txt文件

问题描述 投票:-1回答:1

例如:#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 );


}

有人可以帮助mi正确使用fscanf和fprintf,并且可以用%d代替fscanf redni还是应该是%s。

c file scanf
1个回答
0
投票

以下代码解决了两个问题。

  • scanf必须获取要填充的变量的地址,此&biraci...
  • 索引必须为nBiraci,而不是n,因此&biraci[nBiraci]...
int nBiraci=0;
while(fscanf(biralisteTxt,  "%d %[^/]/%[^/]/%[^;];%[^\n]",
             &biraci[nBiraci].redni, &biraci[nBiraci].prezime,
             &biraci[nBiraci].ime, &biraci[nBiraci].osobna,
             &biraci[nBiraci].glasao) == 5)
{
    nBiraci++;
}
© www.soinside.com 2019 - 2024. All rights reserved.