输出变化" fputs"和" printf"

时间:2017-05-14 09:51:59

标签: c printf file-handling fputs

我试图制作一个程序,从文本文件中读取一首诗并显示它。

这是我的代码..

#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.

我试图引用其他堆栈溢出讨论,例如123,但它仍然没有解决我的问题。

字母表就像在═u( "中所征服的那样`..这可能是导致这个问题的原因。有什么帮助吗?

1 个答案:

答案 0 :(得分:2)

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