簡體   English   中英

如何獲得getc()返回除笑臉以外的字符?

[英]How Can I Get getc() to Return a Character Besides a Smiley Face?

我正在嘗試用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;
}

由於關系相等測試( != )的優先級高於賦值( = ),因此您每次迭代都會在c中存儲1 換句話說,其中一個括號放在錯誤的位置。

while((c = getc(fp) != EOF))
                          ^
{
        putchar(c);
}

對:

while((c = getc(fp)) != EOF)
{
        putchar(c);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM