你那个编译错误是说你编译的时候你的程序正在运行,截掉再编译一般就好了。 fp=fopen("123.txt","r"); if( (fp=fopen("123.txt","r"))==NULL)//这里文件被打开了两次,不好{ printf("Cannot open file.\n");exit(1);} 你要从文件中读取文本格式的数字赋值给变量吗?那得使用fscanf