相关疑难解决方法(0)

为什么我在"if(fd = fopen(fileName,"r")== NULL)"中收到此警告?

FILE *fd;
if (fd=fopen(fileName,"r") == NULL)
{   
    printf("File failed to open");
    exit(1);
}
Run Code Online (Sandbox Code Playgroud)

这是一段代码片段.当我用gcc编译它时,我得到以下警告: -

warning: assignment makes pointer from integer without a cast
Run Code Online (Sandbox Code Playgroud)

当我把fd = fopen(argv [2],"r")放在括号内时,问题就解决了.

当没有放置括号时,我无法理解将整数转换为指针的位置.

c file-handling

5
推荐指数
1
解决办法
3026
查看次数

从二进制文件写入和读取不起作用

所以,我想把9个数字写入二进制文件,然后从该文件中读取它们并将它们打印到屏幕上,但由于某种原因它不起作用,我无法弄清楚为什么.我试过在互联网上寻找答案,但似乎没有任何帮助.如果有人能指出我的代码中的错误(这可能非常明显,但我是c的新手),我会非常感激.这是代码:

int main()
 {
    FILE *f;
    if(f=fopen("dat", "wb") == NULL){
      return 1;
    }
   int c;
   for(int i = 0; i < 9; i++){
     c = fwrite(&i, sizeof(int), 1, f);
     printf("%d",c); //it prints 0 every single time, as if nothing was written in the file
  }
  fclose(f);
  if(f=fopen("dat", "rb+")==NULL){
    return 1;
  }
  int a;
  while(fread(&a, sizeof(int), 1, f)){
    printf("%d\n", a);
  }
  fclose(f);
}
Run Code Online (Sandbox Code Playgroud)

c binaryfiles

1
推荐指数
1
解决办法
66
查看次数

标签 统计

c ×2

binaryfiles ×1

file-handling ×1