为什么我的文件输出乱码?

bha*_*kar 2 c file-io

当我读入一个文件然后输出到一个新文件时,输出是乱码,我试图找出原因.

我试图运行以下代码

#include<stdio.h>
#include<stdlib.h>
int main(int argc ,char *argv[])
{
    int c;
    FILE *of;
    FILE *f;
    of=fopen(argv[2],"w");
    f=fopen(argv[1],"r");
    while(c=getc(f)!=EOF)
        putc(c,of);
    fclose(of);
    fclose(f);
    return 0;

 }
Run Code Online (Sandbox Code Playgroud)

但是当我运行它如下 $./a.out temp new

这里temp是一个已经存在的文件,其内容是: this is a temp filenew运行程序之前不存在

但现在,当我把new它的内容搞砸了,为什么会这样呢?

Dan*_*her 12

while(c=getc(f)!=EOF)
Run Code Online (Sandbox Code Playgroud)

需要括号,

while( (c=getc(f)) != EOF)
Run Code Online (Sandbox Code Playgroud)

优先级!=高于赋值的优先级=.