[英]Code doesn't continue after while-loop
好,
除了我调用的最后一个printf
之外,这里一切正常。 我想在这段代码中输出删除的字符:
#include <stdio.h>
int del_lower_vowels(char c) {
if(c=='a') {
return 0;
}
if(c=='e') {
return 0;
}
if(c=='i') {
return 0;
}
if(c=='o') {
return 0;
}
if(c=='u') {
return 0;
}
else
return c;
}
int main (void) {
printf("Enter a string\n");
int c;
int del = 0;
while((c=getchar()) != EOF)
{
c = del_lower_vowels(c);
if(c==0)
{
del +=1;
}
putchar(c);
}
printf("Deleted characters: %d",del);
return 0;
}
当没有更多可用输入并且您没有从文件重定向 stdin 时,getchar() 会阻塞。 它会一直等待,直到您进行更多输入,或者使用 CTRL+D (Linux) 或 CTRL+Z (Windows) 向终端发送 EOF。
只是按 Enter 不会关闭输入流(在这种情况下是标准输入),因此您的程序会继续运行(这是正确的)。 当我按下 Ctrl+D(这会发送 EOF)时,我会得到已删除字符的数量并且程序结束。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.