FILE *fin = fopen("figura.in", "r");
if(fscanf(fin, "%d %d %d %d", &int[0], &int[1], &int[2], &int[3]) == 1) {
printf("%d\t%d\t%d\t%d\n", int[0], int[1], int[2], int[3]);
} else {
printf("failed to read integer.\n");
}
我无法读取整数。文件没问题,它包含4个整数。有什么问题?
答案 0 :(得分:5)
您应该检查fscanf
是否返回4,格式字符串中的输入数量:
if(fscanf(fin, "%d %d %d %d", &arr[0], &arr[1], &arr[2], &arr[3]) == 4)
来自man page:
返回成功匹配和分配的输入项的数量,可以少于提供的数量,或者在早期匹配失败的情况下甚至为零。