"fputs" 和 "printf" 之间的输出变化

variation of output Between "fputs" and "printf"

我正在尝试制作一个从文本文件中读取一首诗并显示它的程序。

这是我的代码..

#include <stdio.h>
#include <stdlib.h>

int main()
{
    FILE *POEM;

    POEM = fopen("C:\Users\User\Desktop\Poem.txt", "r");

     char C ;

       do {

       C = getc(POEM);

       printf("%c", C);

    }while(C != EOF);


    return 0;
}

它的输出..

From fairest creatures we desire increase,
That thereby beauty's rose might never die,
But as the riper should by time decease,
His tender heir might bear his memory:
But thou, contracted to thine own bright eyes,
Feed'st thy light's flame with self-substantial fuel,
Making a famine where abundance lies,
Thy self thy foe, to thy sweet self too cruel.
Thou that art now the world's fresh ornament,
And only herald to the gaudy spring,
Within thine own bud buriest thy content,
And tender churl mak'st waste in niggarding:
Pity the world, or else this glutton be,
To eat the world's due, by the grave and thee. 
Process returned 0 (0x0)   execution time : 0.250 s
Press any key to continue.

代码有效,但是当我使用 fputs(&C, stdout) 而不是 printf("%c", C) 时,它会打印出这个..

F`)═u( "r`)═u( "o`)═u( "m`)═u( " `)═u( "f`)═u( "a`)═u( "i`)═u( "r`)═u( "e`)═u( "s`)═u( "t`)═u( " `)═u( "c`)═u( "r`)═u( "e`)═u( "a`)═u( "t`)═u( "u`)═u( "r`)═u( "e`)═u( "s`)═u( " `)═u( "w`)═u( "e`)═u( " `)═u( "d`)═u( "e`)═u( "s`)═u( "i`)═u( "r`)═u( "e`)═u( " `)═u( "i`)═u( "n`)═u( "c`)═u( "r`)═u( "e`)═u( "a`)═u( "s`)═u( "e`)═u( ",`)═u( "
`)═u( "T`)═u( "h`)═u( "a`)═u( "t`)═u( " `)═u( "t`)═u( "h`)═u( "e`)═u( "r`)═u( "e`)═u( "b`)═u( "y`)═u( " `)═u( "b`)═u( "e`)═u( "a`)═u( "u`)═u( "t`)═u( "y`)═u( "'`)═u( "s`)═u( " `)═u( "r`)═u( "o`)═u( "s`)═u( "e`)═u( " `)═u( "m`)═u( "i`)═u( "g`)═u( "h`)═u( "t`)═u( " `)═u( "n`)═u( "e`)═u( "v`)═u( "e`)═u( "r`)═u( " `)═u( "d`)═u( "i`)═u( "e`)═u( ",`)═u( "
`)═u( "B`)═u( "u`)═u( "t`)═u( " `)═u( "a`)═u( "s`)═u( " `)═u( "t`)═u( "h`)═u( "e`)═u( " `)═u( "r`)═u( "i`)═u( "p`)═u( "e`)═u( "r`)═u( " `)═u( "s`)═u( "h`)═u( "o`)═u( "u`)═u( "l`)═u( "d`)═u( " `)═u( "b`)═u( "y`)═u( " `)═u( "t`)═u( "i`)═u( "m`)═u( "e`)═u( " `)═u( "d`)═u( "e`)═u( "c`)═u( "e`)═u( "a`)═u( "s`)═u( "e`)═u( ",`)═u( "
`)═u( "H`)═u( "i`)═u( "s`)═u( " `)═u( "t`)═u( "e`)═u( "n`)═u( "d`)═u( "e`)═u( "r`)═u( " `)═u( "h`)═u( "e`)═u( "i`)═u( "r`)═u( " `)═u( "m`)═u( "i`)═u( "g`)═u( "h`)═u( "t`)═u( " `)═u( "b`)═u( "e`)═u( "a`)═u( "r`)═u( " `)═u( "h`)═u( "i`)═u( "s`)═u( " `)═u( "m`)═u( "e`)═u( "m`)═u( "o`)═u( "r`)═u( "y`)═u( ":`)═u( "
`)═u( "B`)═u( "u`)═u( "t`)═u( " `)═u( "t`)═u( "h`)═u( "o`)═u( "u`)═u( ",`)═u( " `)═u( "c`)═u( "o`)═u( "n`)═u( "t`)═u( "r`)═u( "a`)═u( "c`)═u( "t`)═u( "e`)═u( "d`)═u( " `)═u( "t`)═u( "o`)═u( " `)═u( "t`)═u( "h`)═u( "i`)═u( "n`)═u( "e`)═u( " `)═u( "o`)═u( "w`)═u( "n`)═u( " `)═u( "b`)═u( "r`)═u( "i`)═u( "g`)═u( "h`)═u( "t`)═u( " `)═u( "e`)═u( "y`)═u( "e`)═u( "s`)═u( ",`)═u( "
`)═u( "F`)═u( "e`)═u( "e`)═u( "d`)═u( "'`)═u( "s`)═u( "t`)═u( " `)═u( "t`)═u( "h`)═u( "y`)═u( " `)═u( "l`)═u( "i`)═u( "g`)═u( "h`)═u( "t`)═u( "'`)═u( "s`)═u( " `)═u( "f`)═u( "l`)═u( "a`)═u( "m`)═u( "e`)═u( " `)═u( "w`)═u( "i`)═u( "t`)═u( "h`)═u( " `)═u( "s`)═u( "e`)═u( "l`)═u( "f`)═u( "-`)═u( "s`)═u( "u`)═u( "b`)═u( "s`)═u( "t`)═u( "a`)═u( "n`)═u( "t`)═u( "i`)═u( "a`)═u( "l`)═u( " `)═u( "f`)═u( "u`)
═u( "e`)═u( "l`)═u( ",`)═u( "
`)═u( "M`)═u( "a`)═u( "k`)═u( "i`)═u( "n`)═u( "g`)═u( " `)═u( "a`)═u( " `)═u( "f`)═u( "a`)═u( "m`)═u( "i`)═u( "n`)═u( "e`)═u( " `)═u( "w`)═u( "h`)═u( "e`)═u( "r`)═u( "e`)═u( " `)═u( "a`)═u( "b`)═u( "u`)═u( "n`)═u( "d`)═u( "a`)═u( "n`)═u( "c`)═u( "e`)═u( " `)═u( "l`)═u( "i`)═u( "e`)═u( "s`)═u( ",`)═u( "
`)═u( "T`)═u( "h`)═u( "y`)═u( " `)═u( "s`)═u( "e`)═u( "l`)═u( "f`)═u( " `)═u( "t`)═u( "h`)═u( "y`)═u( " `)═u( "f`)═u( "o`)═u( "e`)═u( ",`)═u( " `)═u( "t`)═u( "o`)═u( " `)═u( "t`)═u( "h`)═u( "y`)═u( " `)═u( "s`)═u( "w`)═u( "e`)═u( "e`)═u( "t`)═u( " `)═u( "s`)═u( "e`)═u( "l`)═u( "f`)═u( " `)═u( "t`)═u( "o`)═u( "o`)═u( " `)═u( "c`)═u( "r`)═u( "u`)═u( "e`)═u( "l`)═u( ".`)═u( "
`)═u( "T`)═u( "h`)═u( "o`)═u( "u`)═u( " `)═u( "t`)═u( "h`)═u( "a`)═u( "t`)═u( " `)═u( "a`)═u( "r`)═u( "t`)═u( " `)═u( "n`)═u( "o`)═u( "w`)═u( " `)═u( "t`)═u( "h`)═u( "e`)═u( " `)═u( "w`)═u( "o`)═u( "r`)═u( "l`)═u( "d`)═u( "'`)═u( "s`)═u( " `)═u( "f`)═u( "r`)═u( "e`)═u( "s`)═u( "h`)═u( " `)═u( "o`)═u( "r`)═u( "n`)═u( "a`)═u( "m`)═u( "e`)═u( "n`)═u( "t`)═u( ",`)═u( "
`)═u( "A`)═u( "n`)═u( "d`)═u( " `)═u( "o`)═u( "n`)═u( "l`)═u( "y`)═u( " `)═u( "h`)═u( "e`)═u( "r`)═u( "a`)═u( "l`)═u( "d`)═u( " `)═u( "t`)═u( "o`)═u( " `)═u( "t`)═u( "h`)═u( "e`)═u( " `)═u( "g`)═u( "a`)═u( "u`)═u( "d`)═u( "y`)═u( " `)═u( "s`)═u( "p`)═u( "r`)═u( "i`)═u( "n`)═u( "g`)═u( ",`)═u( "
`)═u( "W`)═u( "i`)═u( "t`)═u( "h`)═u( "i`)═u( "n`)═u( " `)═u( "t`)═u( "h`)═u( "i`)═u( "n`)═u( "e`)═u( " `)═u( "o`)═u( "w`)═u( "n`)═u( " `)═u( "b`)═u( "u`)═u( "d`)═u( " `)═u( "b`)═u( "u`)═u( "r`)═u( "i`)═u( "e`)═u( "s`)═u( "t`)═u( " `)═u( "t`)═u( "h`)═u( "y`)═u( " `)═u( "c`)═u( "o`)═u( "n`)═u( "t`)═u( "e`)═u( "n`)═u( "t`)═u( ",`)═u( "
`)═u( "A`)═u( "n`)═u( "d`)═u( " `)═u( "t`)═u( "e`)═u( "n`)═u( "d`)═u( "e`)═u( "r`)═u( " `)═u( "c`)═u( "h`)═u( "u`)═u( "r`)═u( "l`)═u( " `)═u( "m`)═u( "a`)═u( "k`)═u( "'`)═u( "s`)═u( "t`)═u( " `)═u( "w`)═u( "a`)═u( "s`)═u( "t`)═u( "e`)═u( " `)═u( "i`)═u( "n`)═u( " `)═u( "n`)═u( "i`)═u( "g`)═u( "g`)═u( "a`)═u( "r`)═u( "d`)═u( "i`)═u( "n`)═u( "g`)═u( ":`)═u( "
`)═u( "P`)═u( "i`)═u( "t`)═u( "y`)═u( " `)═u( "t`)═u( "h`)═u( "e`)═u( " `)═u( "w`)═u( "o`)═u( "r`)═u( "l`)═u( "d`)═u( ",`)═u( " `)═u( "o`)═u( "r`)═u( " `)═u( "e`)═u( "l`)═u( "s`)═u( "e`)═u( " `)═u( "t`)═u( "h`)═u( "i`)═u( "s`)═u( " `)═u( "g`)═u( "l`)═u( "u`)═u( "t`)═u( "t`)═u( "o`)═u( "n`)═u( " `)═u( "b`)═u( "e`)═u( ",`)═u( "
`)═u( "T`)═u( "o`)═u( " `)═u( "e`)═u( "a`)═u( "t`)═u( " `)═u( "t`)═u( "h`)═u( "e`)═u( " `)═u( "w`)═u( "o`)═u( "r`)═u( "l`)═u( "d`)═u( "'`)═u( "s`)═u( " `)═u( "d`)═u( "u`)═u( "e`)═u( ",`)═u( " `)═u( "b`)═u( "y`)═u( " `)═u( "t`)═u( "h`)═u( "e`)═u( " `)═u( "g`)═u( "r`)═u( "a`)═u( "v`)═u( "e`)═u( " `)═u( "a`)═u( "n`)═u( "d`)═u( " `)═u( "t`)═u( "h`)═u( "e`)═u( "e`)═u( ".`)═u( " `)═u( "
Process returned 0 (0x0)   execution time : 0.222 s
Press any key to continue.

我尝试参考其他堆栈溢出讨论,例如 1, , and 3,但它仍然没有解决我的问题。

字母表就像在 ═u( ") 中被征服了一样..可能是这个问题的原因..任何帮助?

那是因为 fputs 需要以 null 结尾的字符串。 You can see the reference here