0

我正在尝试读取整数文件并在读取它们时打印它们。但是,我在通过循环的第一次迭代中获得了不好的访问权限。任何想法为什么?

#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
4

3 回答 3

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

使用此代码重试。

除了不正确的权限,找不到文件之外,我想不出任何问题..

于 2012-10-22T19:36:05.637 回答
0

问题是我使用 Xcode 来开发我的程序。将文件拖到项目中并没有将它放在与可执行文件相同的文件夹中

于 2012-10-22T20:32:01.613 回答
0

试试这个:</p>

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;
}
于 2017-04-15T15:05:16.153 回答