gpt4 book ai didi

c - 使用以 "?"符号结尾的 fgetc() 打印文件的字符

转载 作者:太空宇宙 更新时间:2023-11-04 05:47:50 24 4
gpt4 key购买 nike

我正在尝试使用 while 循环一个一个地打印文件中的字符(使用 fgetc)。

我正在使用最新的 Atom 编辑器编写代码,并使用 GPP Compiler 进行编译, 按 F5,输出显示在 xterm 终端中。

int main(int argc, char const *argv[])
{
FILE* file = NULL;
file = fopen("text.txt", "r+");
int letter = 0;

if (file != NULL)
{
while(letter != EOF)
{
letter = fgetc(file);
printf("%c", letter);
}

我希望输出是我文件中的文本,但最后有一个问号符号。经过一些研究后我了解到,我的 fgetc 函数像普通字符一样读取 EOF 并将其打印出来,从而在末尾产生一个问号符号。感谢您的帮助!

最佳答案

... ending with a “?” symbol

while(letter != EOF)
{
letter = fgetc(file);
printf("%c", letter);
}

您之前打印字母 以检查它是否是 EOF,因此您(尝试)打印不是字符的 EOF,从而产生意外的输出

有效代码示例:

while ((letter = fgetc(file)) != EOF)
putchar(letter); /* or printf("%c", letter); if you prefer */

关于c - 使用以 "?"符号结尾的 fgetc() 打印文件的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55569183/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com