void readfromFile() {
FILE *myFile;
myFile = fopen("matrikel.txt", "r");
//read file into array
int numberArray[12];
int i;
if (myFile == NULL) {
printf("Error Reading File\n");
exit (0);
}
for (i = 0; i < 12; i++) {
fscanf(myFile, "%d,", &numberArray[i] );
}
for (i = 0; i < 1; i++) {
printf("Number is: %d\n\n", numberArray[i]);
}
fclose(myFile);
}
&#34; matrikel.txt&#34;包含
808098822790
int numberArray[12]
的数字似乎太长,在运行代码时会输出一个随机数。
当从它所使用的数字的末尾剪切一些单个整数时,最大长度似乎是9。
我不太确定,但是第一个for循环中的fscanf
不应该在numberArray[]
的每个单元格中打印一个位数?
答案 0 :(得分:5)
scanf的格式说明符遵循以下原型:%[*][width][length]specifier
因此,使用%1d
,您每次都会读取一个数字。
但是使用fgetc(myFile);
for (i = 0; i < 12; i++) {
int c = fgetc(myFile);
if(c == EOF)
break;
numberArray[i] = c - '0';
}