那么,
除了上次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;
}
答案 0 :(得分:5)
getchar()正在阻塞。只需要等待,直到你做更多的输入,或者用CTRL + D(Linux)或CTRL + Z(Windows)向终端发送EOF。
答案 1 :(得分:1)
只需按Enter即可关闭输入流(本例中为标准输入),因此程序会继续运行(这是正确的)。当我按下Ctrl + D(这发送EOF)时,我得到已删除字符的数量,程序结束。