井,
在这里,除了我调用的最后一个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;
}发布于 2012-11-25 18:39:56
当没有更多的输入可用,并且您没有从文件重定向stdin时,getchar()被阻塞。它将永远等待,直到你做更多的输入,或发送一个EOF到终端使用CTRL+D (Linux)或CTRL+Z (Windows)。
发布于 2012-11-25 18:41:48
只需按Enter键并不会关闭输入流(在本例中为标准输入),因此您的程序将继续运行(这是正确的)。当我点击Ctrl+D (这会发送EOF)时,我会得到删除的字符数,程序就会结束。
https://stackoverflow.com/questions/13550189
复制相似问题