首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

输入A-Z显示在第几位(简单代码)解决思路

2012-04-26 
输入A-Z显示在第几位(简单代码)C/C++ code#includestdio.h#define EOF (-1)int posi(char c)int main(v

输入A-Z显示在第几位(简单代码)

C/C++ code
#include<stdio.h>#define EOF (-1)int posi(char c);int main(void){    char ch;    printf("Enter a character:\n");    while((ch=getchar())!=EOF)    {        printf("The position of the character is:");        posi(ch);        putchar('\n');        printf("Enter another character:\n");    }    return 0;}int posi(char c){    if(c>='A'&&c<='Z')        return c-64;    else if(c>='a'&&c<='z')        return c-96;}

麻烦跑一跑,实在找不到问题所在了。。。为什么 printf("Enter another character:\n");要显示两次啊。。并且不出结果

[解决办法]
用scanf,getchar等读取字符串或者字符的时候容易出现缓冲区残留'\n'的情况。
于是下次读取的时候,就会读取到'\n'.
为了防止这种情况,可以在scanf或者getchar函数之前加下面三条语句之一:
标准:rewind(stdin);
windows扩展:fflush(stdin);
暴力:stdin->_cnt=0;

热点排行