当我读入一个文件然后输出到一个新文件时,输出是乱码,我试图找出原因.
我试图运行以下代码
#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 file和new运行程序之前不存在
但现在,当我把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)
优先级!=高于赋值的优先级=.