当我读入一个文件,然后输出到一个新文件时,输出是乱码,我试图找出原因。为什么我的文件输出出现乱码?
我试图运行下面的代码
#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
是一个已经存在的文件,其内容是: this is a temp file
和new
不存在在运行程序之前
但是现在当我捕捉到new
的内容时,它全部搞砸了它是如此吗?
是否使用了'''od'''或不同hexdump都-style命令用来发现,每一个字节是按Ctrl-A, ASCII 1? – 2012-07-07 19:14:49
除了Daniel Fischer的回答,考虑将'main'修改为'int main',使用'fclose'关闭并添加'return 0'以从主返回成功。 – 2012-07-07 19:17:16
还有一个问题出现我看到文件的八进制转储新但所有字节不是1倒数第二个字节为0为什么这样呢? – bhaskar 2012-07-07 19:23:03