从输入文件“data.in”中读入两个整数(数值范围为[0, 232-1]),计算并输出它们的商和余数
/* test.c */
#include<stdio.h>
int main(void)
{
unsigned int a, b;
FILE *fp = fopen("data.in", "r");
if(fp==NULL){
printf("ERROR\n");
return 1;
}
if(fscanf(fp, "%u %u", &a, &b)!=2){
printf("ERROR\n");
return 2;
}
if(b==0){
printf("ERROR\n");
return 3;
}
printf("%d %d\n", a/b, a%b);
return 0;
}
能编译,但运行时显示ERROR,谁能告诉我怎么回事
[解决办法]
if(fscanf(fp, "%u %u", &a, &b)!=2){
改为
if(fscanf(fp, "%u%u", &a, &b)!=2){
scanf和同类函数中不要用空格分隔格式控制符
[解决办法]
你先看看是哪个判断打出ERROR来的,最起码你区分一下那几个ERROR吧
[解决办法]
没准备好data.in文件吧。
我准备了个
333 20
[解决办法]
FILE *fp = NULL; fp = fopen("data.in","w+"); if(fp == NULL) { printf("open failed\n"); getch(); return 1; } fputs("12 34",fp); fclose(fp);