首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用getchar()读取输入时出现问题

使用getchar()读取输入时出现问题
EN

Stack Overflow用户
提问于 2020-03-06 01:42:40
回答 1查看 31关注 0票数 0

我有以下代码(s1和s2是堆栈)。如果字符是运算符,则存储在堆栈s2中;如果字符是从0到9的数字,则存储在s1中。

代码语言:javascript
复制
int ch;
ch = getchar();

while((ch=getchar())!='\n')
{
    print("%d\n", ch);

    if(ch>47 && ch<58)
    {
        push((int)ch - (int)'0', &s1);
    }
    else
    {

        push(ch, &s2);
    }
}

问题是,如果输入是"+12“,则打印1和2的ASCII代码,但不打印'+‘运算符的ASCII代码。

但如果输入为"++12“,则打印其中一个'+‘的ASCII码,然后打印1和2的ASCII码。

那么这段代码到底是如何工作的呢?

EN

回答 1

Stack Overflow用户

发布于 2020-03-06 01:44:36

您在while循环之前执行了一个初始getchar()调用,因此总是遗漏了第一个输入。

试着删除它,它应该可以工作!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60551210

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档