而第一个字符之所以没有显示出来,是因为:
printf("输入一串字符:\n");
ch=getchar();
while((scanf("%c",&ch))!='\n')
{
...
}
上述程序中,显示完提示字符串“输入一串字符:\n”后,执行“ch=getchar();”,这里要求用户输入一个字符。用户输完一个字符后,该字符被读走,之后紧接着执行“while((scanf("%c",&ch))!='\n')”又要求用户输入字符,因为这个时候没有再显示提示信息,所以给人的感觉就是用户在连续地输入字符,可是显示的时候却没有第一个字符。殊不知第一个字符已经被“ch=getchar();”这条语句读走赋给了ch,而后“while((scanf("%c",&ch))!='\n')”又从缓冲区中读取第二个字符赋给了ch,自然就没有看到第一个字符了。
[ 本帖最后由 取名字 于 2015-6-30 17:23 编辑 ]
printf("输入一串字符:\n");
ch=getchar();
while((scanf("%c",&ch))!='\n')
{
...
}
上述程序中,显示完提示字符串“输入一串字符:\n”后,执行“ch=getchar();”,这里要求用户输入一个字符。用户输完一个字符后,该字符被读走,之后紧接着执行“while((scanf("%c",&ch))!='\n')”又要求用户输入字符,因为这个时候没有再显示提示信息,所以给人的感觉就是用户在连续地输入字符,可是显示的时候却没有第一个字符。殊不知第一个字符已经被“ch=getchar();”这条语句读走赋给了ch,而后“while((scanf("%c",&ch))!='\n')”又从缓冲区中读取第二个字符赋给了ch,自然就没有看到第一个字符了。
[ 本帖最后由 取名字 于 2015-6-30 17:23 编辑 ]