C:尝试从.dat文件读取int时获取错误访问权限

时间:2012-10-22 19:17:15

标签: c scanf

我正在尝试读取整数文件并在阅读时打印它们。但是我在循环的第一次迭代中获得了错误的访问权限。有什么想法吗?

#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

3 个答案:

答案 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;
}