2012-04-13 54 views
1

我从一个文本文档扫描下列值在不同的阵列:制作阵列然后印刷,所述阵列

while (fscanf(employeesTXT, "%d:%[^:]:%[^:]:%d:%lf\n", &empID[i], lastName[i], firstName[i], &payGroup[i], &hoursWorked[i]) != EOF) 
{ 
    i++; 
} 

此运行而不:

0001:Satriani:Joe:6:38.0 
0002:Vai:Steve:1:44.5 
0003:Morse:Steve:10:50.0 
0004:Van Halen:Eddie:3:25.75 
0005:Petrucci:John:8:42.25 
0006:Beck:Jeff:3:62.0 

我这样做与while循环以下明显的错误。当我尝试再次显示该数据时会出现问题。我这个尝试过for循环:

for(i = 0; i < 16; i++) 
{ 
    printf("%04d - %s - %s - %d - %.2lf\n", empID[i], lastName[i], firstName[i], payGroup[i], hoursWorked[i]); 
}  

然而,而不是预期的结果,我得到如下:

4587591 - - - 0 - 0.00 
0006 - - - 0 - 0.00 
0052 - - - 0 - 0.00 
0052 - - - 0 - 0.00 
0052 - - - 0 - 0.00 
0320 - - - 0 - 0.00 
0320 - - - 0 - 0.00 
0005 - - - 0 - 0.00 
0004 - - - 0 - 0.00 
0003 - - - 0 - 0.00 
0001 - Satriani - Joe - 6 - 38.00 
0002 - Vai - Steve - 1 - 44.50 
0003 - Morse - Steve - 10 - 50.00 
0004 - Van Halen - Eddie - 3 - 25.75 
0005 - Petrucci - John - 8 - 42.25 
0006 - Beck - Jeff - 3 - 62.00 

是什么导致所有开头的垃圾,并且是有什么我可以做到删除它?

+0

标记Q如果解决了就解决了。 – AoeAoe 2012-04-13 23:01:20

回答

4

在执行fscanf循环之前,很可能您从未将i初始化为零。

+0

哈哈我真是个白痴。谢谢。我无法相信有时候这很简单。 – eveo 2012-04-13 21:23:56