鱼C论坛

 找回密码
 立即注册
查看: 3008|回复: 7

标准输入问题求解

[复制链接]
发表于 2012-5-19 05:42:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 不好说 于 2012-5-19 05:45 编辑

                int num;
                char name[10];
                char sex,job;

                printf("input the num:");
                scanf("%d",&num);

                printf("input the name:");
                scanf("%s",name);

                printf("input the sex<B/M>:");
                scanf("%c",&sex);

                printf("input the job<s/t>:");
                scanf("%c",&job);

为什么这样只能够输入num和name两个变量,之后的sex直接跳过而不能输入?????以下是终端显示结果:

               input the num:1               input the name:ddd
               input the sex<B/M>:input the job<s/t>:s
               Press any key to continue






小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-5-19 08:33:59 | 显示全部楼层
scanf("%c",&sex);这句把之前输入的回车键读进去了,你可以在此句前用getchar先读掉回车键
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-5-19 12:54:18 | 显示全部楼层

嗯,这样就可以了,那为什么在num后面不用加getchar呢,如果我加上了会怎样?最后面job变量后能不能加getchar?
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-5-19 13:26:26 | 显示全部楼层
#include <stdio.h>
void main()
{
    int num;
        char name[10];
        char sex,job;
       
        printf("input the num:");
        scanf("%d",&num);
        //这里不用加(也可以加),scanf在读取字符串时不会读入空白字符
        printf("input the name:");
        scanf("%s",name);   
       
        getchar();       //这里必须有
        printf("input the sex<B/M>:");
        scanf("%c",&sex);  //但在这里scanf对单字符操作中却将空白符按一般字符处理
       
        getchar();        //这里也要加
        printf("input the job<s/t>:");
        scanf("%c",&job);
}
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-5-19 13:54:07 | 显示全部楼层
sea 发表于 2012-5-19 13:26
#include
void main()
{

还有个问题,如果我加个for循环,要求输入多组数据,那么在scanf("%c",&job);后面是不是也应该加上getchar啊?如果不加的话这个换行符会不会被读入第二次循环的第一个变量num里面?
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-5-19 17:21:15 | 显示全部楼层
不好说 发表于 2012-5-19 13:54
还有个问题,如果我加个for循环,要求输入多组数据,那么在scanf("%c",&job);后面是不是也应该加上getcha ...

同样不用加,也不会被读到num中。你可以自己试一下
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-5-20 08:22:28 | 显示全部楼层
同意楼上,建议LZ学学调试,如此,这些问题就可以自己找到答案的
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-5-20 16:43:50 | 显示全部楼层
littleevil 发表于 2012-5-20 08:22
同意楼上,建议LZ学学调试,如此,这些问题就可以自己找到答案的

受教了,谢谢
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-13 09:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表