为什么getchar()返回-1?

为什么getchar()返回-1?,c,C,在以下代码中,为什么ch2和ch3的值等于-1 char ch1; char ch2; char ch3; printf("put Type: "); ch1 = getchar(); _flushall(); printf("put Type: "); ch2 = getchar(); _flushall(); printf("put Type: "); ch3 = getchar(); printf("\n"); printf("the ascii value for this three

在以下代码中,为什么
ch2
ch3
的值等于
-1

char ch1;
char ch2;
char ch3;
printf("put Type: ");
ch1 = getchar();
_flushall();
printf("put Type: ");
ch2 = getchar();
_flushall();
printf("put Type: ");
ch3 = getchar();
printf("\n");
printf("the ascii value for this three types is: %d, %d, %d", ch1, ch2, ch3);
如果遇到错误,它将返回
EOF
(这是一个宏,它将扩展为带有负值的
int
,通常为“-1”)。这解释了为什么您会看到
-1

至于为什么
getchar
失败,这是一个单独的问题。通常这意味着它已到达输入流的末尾。我假设这与您正在使用
\u flushall

刷新它有关。如果遇到错误,它将返回
EOF
(这是一个宏,它将扩展为带有负值的
int
,通常为“-1”)。这解释了为什么您会看到
-1

至于为什么
getchar
失败,这是一个单独的问题。通常这意味着它已到达输入流的末尾。我假设这与您正在使用
\u flushall

刷新它有关。如果遇到错误,它将返回
EOF
(这是一个宏,它将扩展为带有负值的
int
,通常为“-1”)。这解释了为什么您会看到
-1

至于为什么
getchar
失败,这是一个单独的问题。通常这意味着它已到达输入流的末尾。我假设这与您正在使用
\u flushall

刷新它有关。如果遇到错误,它将返回
EOF
(这是一个宏,它将扩展为带有负值的
int
,通常为“-1”)。这解释了为什么您会看到
-1


至于为什么
getchar
失败,这是一个单独的问题。通常这意味着它已到达输入流的末尾。我认为这与您正在使用
\u flushall

刷新它有关,但我打印了它们的ascii值。当我通过CMD导入外部输入时会发生这种情况。您的代码在我的系统上运行良好。
\u flushall()
来自哪里?这不是标准的C.@alk,但我打印了它们的ascii值。当我通过CMD导入外部输入时会发生这种情况。您的代码在我的系统上运行良好。
\u flushall()
来自哪里?这不是标准的C.@alk,但我打印了它们的ascii值。当我通过CMD导入外部输入时会发生这种情况。您的代码在我的系统上运行良好。
\u flushall()
来自哪里?这不是标准的C.@alk,但我打印了它们的ascii值。当我通过CMD导入外部输入时会发生这种情况。您的代码在我的系统上运行良好。
\u flushall()
来自哪里?这不是标准的C.@alk