我正在尝试读取整数文件并在阅读时打印它们。但是我在循环的第一次迭代中获得了错误的访问权限。有什么想法吗?
#include <stdio.h>
int main(int argc, const char * argv[])
{
FILE *fr = fopen("testdata1.dat","r");
int output;
do {
fscanf(fr, "%d", &output);
printf("%d", output);
}
while(output != EOF); // check to make sure user has input
}
.dat的前几行是
1000 0 100 2 90 2 80 3 70 2 60 2 10 -99
1001 8 80 2 80 2 50 3 70 2 40 2 10 -99
答案 0 :(得分:2)
#include <stdio.h>
int main(int argc, char *argv[]){
FILE *fr = (FILE*) fopen("test.dat","r");
// ERROR HERE: fr=fopen("test.dat","r");
int output;
if(!feof(fr)){
do {
fscanf(fr, "%d", &output);
printf("%d", output);
}
while(!feof(fr)); // check to make sure user has input
fclose(fr);
return 0;
}
使用此代码重试。
我想不出除了不正确的权限,不可修复的文件之外的任何问题..
答案 1 :(得分:0)
问题在于我正在使用Xcode来开发我的程序..将文件拖到项目中并没有将它放在与可执行文件相同的文件夹中
答案 2 :(得分:0)
试试这个:
enter code here
#include <stdio.h>
int main(int argc, char *argv[]){
int output;
FILE *fr = fopen("test.dat","rb");
if(ferror(fr)!=0){
fprintf(stderr,"Error in reading file.\n");
exit(EXIT_FAILURE);
}
while(feof(fr) == 0){
fread(&output,sizeof(int),1,fr);
printf("%d\n",output);
}
fclose(fr);
return 0;
}