当我读入一个文件然后输出到一个新文件时,输出是乱码,我正在尝试找出原因。
我正在尝试运行以下代码
#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;
}
但是当我按如下方式运行时
$./a.out temp new
其中 temp
是一个现有文件,其内容为:
这是一个临时文件
并且new
在运行程序之前不存在
但是现在当我抓取 new
的内容时,一切都变得一团糟,为什么会这样?
最佳答案
while(c=getc(f)!=EOF)
需要括号,
while( (c=getc(f)) != EOF)
!=
的优先级高于赋值 =
的优先级。
关于c - 为什么我的文件输出是乱码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11377865/