我试图在C中编写一个简单的'cat'克隆.我正在运行Windows 7并使用MinGW编译器.但是,每当我运行程序时,它都会返回文本文件,但每个字符都替换为"☺"字符.先感谢您.
#include <stdio.h>
int main(int argc, char *argv[])
{
int i;
FILE *fp;
int c;
for(i = 1; i < argc; i++)
{
fp = fopen(argv[i], "r");
if(fp == NULL)
{
fprintf(stderr, "cat: can't open %s\n", argv[i]);
continue;
}
while((c = getc(fp) != EOF))
{
putchar(c);
}
fclose(fp);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
由于关系等于test(!=)的优先级高于赋值(=),因此您只需1在每次迭代时存储在c中.否则,其中一个括号位于错误的位置.
while((c = getc(fp) != EOF))
^
{
putchar(c);
}
Run Code Online (Sandbox Code Playgroud)
对:
while((c = getc(fp)) != EOF)
{
putchar(c);
}
Run Code Online (Sandbox Code Playgroud)