开发者社区> 问答> 正文

C语言scanf与printf?

代码如下 运行环境 VS2013
问题:输入1a 输出a=1 (这个没问题)而ch却什么都没得到。为什么?ch不应是a吗?

 #include<stdio.h>
#include<stdlib.h>
int main()
{
    int a;
    char ch;

    scanf_s("%d", &a);
    printf("a=%d\n",a);

    scanf_s("%c", &ch);
    printf("ch=%c\n",ch);
    system("pause");
    return 0;
}

运行结果附图如下:
screenshot

展开
收起
a123456678 2016-03-23 10:55:50 3558 0
5 条回答
写回答
取消 提交回答
  • int main() {

    int a; char ch;

    scanf("%dn", &a); printf("a=%dn",a);

    scanf("%c", &ch); printf("ch=%cn",ch); return 0; } 第一次读入后

    2020-03-19 10:56:30
    赞同 展开评论 打赏
  • 专注物联网

    int main()
    {

    int a;
    char ch;

    scanf("%dn", &a);
    printf("a=%dn",a);

    scanf("%c", &ch);
    printf("ch=%cn",ch);
    return 0;
    }
    第一次读入后添加换行

    2019-07-17 19:10:32
    赞同 展开评论 打赏
  • 乐于学习与分析

    int main()
    {

    int a;
    char ch;

    scanf("%dn", &a);
    printf("a=%dn",a);

    scanf("%c", &ch);
    printf("ch=%cn",ch);
    return 0;
    }
    第一次读入后添加换行

    2019-07-17 19:10:31
    赞同 展开评论 打赏
  • 软件开发,安全加密

    include include

    int main()
    {

    int a;
    char ch;

    scanf("%dn", &a);
    printf("a=%dn",a);

    scanf("%c", &ch);
    printf("ch=%cn",ch);
    return 0;
    }
    第一次读入后添加换行

    2019-07-17 19:10:31
    赞同 展开评论 打赏
  • 个人比较认可 VS 的情况
    一次输入回车换行,算是本次输入的结束,而不应该响应后续的数据输入与处理。

    当然,各个编译器的处理确实不同。因为你的输入都被获取到了,只是看如何处理。

    2019-07-17 19:10:31
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载