与getchar()putchar()相关的C编程(初学者帮助)

与getchar()putchar()相关的C编程(初学者帮助),c,while-loop,getchar,putchar,C,While Loop,Getchar,Putchar,我是C语言编程新手,我想弄清楚,一个看似愚蠢的疑问 代码: 这应该只返回我输入的值…但是相应地…当我输入0时它不应该终止吗?如果不是……while下面的陈述到底意味着什么? 任何帮助都将不胜感激:)EOF意味着,例如,当你在linux中点击ctrl+d时,它发送EOF信号,它不一定是0 EOF意味着,例如,当你在linux中点击ctrl+d时,它会发送EOF信号,而不一定是0 函数返回输入的ASCII值(48表示零,或'0'),或头文件中名为EOF的值(通常为-1) 因此,如果您希望在EOF(正

我是C语言编程新手,我想弄清楚,一个看似愚蠢的疑问

代码:

这应该只返回我输入的值…但是相应地…当我输入0时它不应该终止吗?如果不是……while下面的陈述到底意味着什么?
任何帮助都将不胜感激:)

EOF
意味着,例如,当你在linux中点击
ctrl+d
时,它发送
EOF
信号,它不一定是
0

EOF
意味着,例如,当你在linux中点击
ctrl+d
时,它会发送
EOF
信号,而不一定是
0

函数返回输入的ASCII值(48表示零,或
'0'
),或头文件
中名为
EOF
的值(通常为-1)

因此,如果您希望在EOF(正确的EOF,而不是您定义的EOF)上停止,或者如果用户写入零,那么这将更好地工作:

#include <stdio.h>

int main()
{
    int c = getchar();

    while (c != EOF && c != '0')
    {
        putchar(c);
        c = getchar();
    }

    return 0;
}
#包括
int main()
{
int c=getchar();
而(c!=EOF&&c!=“0”)
{
普查尔(c);
c=getchar();
}
返回0;
}

函数返回输入的ASCII值(48表示零,或
'0'
),或头文件
中名为
EOF
的值(通常为-1)

因此,如果您希望在EOF(正确的EOF,而不是您定义的EOF)上停止,或者如果用户写入零,那么这将更好地工作:

#include <stdio.h>

int main()
{
    int c = getchar();

    while (c != EOF && c != '0')
    {
        putchar(c);
        c = getchar();
    }

    return 0;
}
#包括
int main()
{
int c=getchar();
而(c!=EOF&&c!=“0”)
{
普查尔(c);
c=getchar();
}
返回0;
}

EOF
当然不是
0
(也不是
'0'
,字符文字等于48)。它根本不是字符
stdio.h
(您应该是
#包括
-ing!)将其定义为
-1
。它表示您正在读取的任何文件中都没有更多数据。它不是流中的一个字节,而是io库指示它已完成的方式

getchar
需要返回
int
的全部原因是,文件结束指示符不可能是文件中的有效字节


其他函数表示达到EOF的方式不同:
fgets()
返回
NULL
read()
返回读取的字节数,返回0,表示无法读取任何内容。

EOF
肯定不是
0
(也不是
'0'
,字符文本等于48)。它根本不是字符
stdio.h
(您应该是
#包括
-ing!)将其定义为
-1
。它表示您正在读取的任何文件中都没有更多数据。它不是流中的一个字节,而是io库指示它已完成的方式

getchar
需要返回
int
的全部原因是,文件结束指示符不可能是文件中的有效字节


其他函数表示达到EOF的方式不同:
fgets()
返回
NULL
read()
返回读取的字节数,返回0,表示无法读取任何内容。

当您输入
0
时,它实际上不是零,只是
0
。它的数值为48,可通过
printf(“%d\n”,“0”)进行验证,打印48。
EOF
是一个实际的零,也就是说,它的表示形式本质上是零。

当您输入
0
时,它实际上不是零,只是
0
。它的数值为48,可通过
printf(“%d\n”,“0”)进行验证,打印48。
EOF
是一个实际的零,也就是说,它的表示形式本质上是零。

当你输入“0”时,它读取的是ASCII字符“0”,而不是数字值。当你输入“0”时,它读取的是ASCII字符“0”,而不是数字值。谢谢,我在基本知识中弄混了:)谢谢,我在基本知识中弄混了:)谢谢,但我想用我想要的…我应该用#定义“0”而不是仅仅0:)谢谢,但我想用我想要的…我应该用#定义“0”而不是仅仅0:)@Aki没问题仅供参考:@Aki无问题;)供参考: