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

标签 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;

 }

但是当我按如下方式运行时 $./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/

相关文章:

C从一个文件读取数据并将计算结果存储在另一个文件中

mysql - 执行 LOAD DATA LOCAL INFILE 时获取 mysql 错误代码 : 1265. 数据被列截断

c - C 中的文件 I/O - 如何从文件读取然后写入文件?

c - 在 C 中切换 unsigned int 的给定范围的位

c - 表示地理表面地形图的二维数组算法

c - 带浮点的 struct C scanf 数组

c - MsVc++奇怪的错误: not declared variable

javascript - 从服务器读取txt文件,并将其写入网站

制作目录时出现 Python "FileExists"错误

c - void *array = *(void **) member + siz * (*p_n); 的目的是什么?