24小时热门版块排行榜    

查看: 1227  |  回复: 4
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

yctv0717

新虫 (初入文坛)

[求助] c语言输入输出问题

先读入一个数字n,再读入n组的字符加数字
比如先读入2,读入字符s数字1,读入字符q数字5;可是我写的程序读出的是乱码,不知道为什么
main()
{
int n,T,a;
char s ;
scanf("%d",&n);
while(n--)
{ scanf("%c",&s)  ;
    scanf("%d",&a)  ;
    printf("s=%c,a=%d",s,a);

}

}
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mrcranberry

银虫 (初入文坛)

用getchar()或者gets()
I'mtheone!
4楼2012-12-04 16:15:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 5 个回答

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖


感谢参与,应助指数 +1
xzhdty: 金币+1, 谢谢骠骑将军 2012-11-26 23:27:48
输入int不存在问题,但是scanf()读取字符时会有问题,因为你输入完3之后按了一下回车(\n),如果缓冲区没有被清空,下一个scanf("%c",&s)会将回车当做字符赋值给s
所以你输出时s是一个回车(也就是换了一行).

解决办法:每次调用scanf()之后,甭管读入的是字符还是数字,都强制清空缓冲区.用fflush(stdin).调试过的代码如下:
CODE:
#include
#include

int main()
{
    int n,T,a;
    char s ;
    scanf("%d",&n);
    fflush(stdin);
    while(n--)
    {
        scanf("%c",&s);
        fflush(stdin);
        scanf("%d",&a);
        fflush(stdin);
        printf("s=%c,a=%d\n",s,a);

    }
}

matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
2楼2012-11-26 17:03:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wm20

铜虫 (初入文坛)

【答案】应助回帖

感谢参与,应助指数 +1
使用getchar();函数吸收多余的回车应该也可以。
实事求是
3楼2012-11-27 09:54:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lvhuyh

新虫 (初入文坛)

【答案】应助回帖

用getchar()是个不错的方法,还可以这样:把s定义为一个字符串,而不是一个字符,这样以%s读入字符串,每次去s[0]即可
5楼2012-12-05 10:27:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[论文投稿] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +3 2JOx3r2CYEgw 2026-08-22 6/300 2026-08-23 03:40 by OEbVnUOu01ol
[论文投稿] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +3 QTy3jDtz1uLt 2026-08-21 9/450 2026-08-23 03:04 by OEbVnUOu01ol
[硕博家园] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +4 QTy3jDtz1uLt 2026-08-21 11/550 2026-08-23 02:55 by OEbVnUOu01ol
[博后之家] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +3 DpSrDtM079iu 2026-08-22 4/200 2026-08-23 01:04 by OEbVnUOu01ol
[考博] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +3 DpSrDtM079iu 2026-08-22 3/150 2026-08-23 00:55 by OEbVnUOu01ol
[论文投稿] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +3 2JOx3r2CYEgw 2026-08-22 3/150 2026-08-22 22:03 by OEbVnUOu01ol
[基金申请] 93BebMhtakh前后11位开头都是大写 +7 且听虎啸 2026-08-17 8/400 2026-08-22 21:55 by 医学老男孩
[基金申请] 范进中举一文的中心思想 +3 zjuhero 2026-08-22 4/200 2026-08-22 20:02 by mycsru
[基金申请] 什么时候开奖? +7 CrisMessi 2026-08-18 8/400 2026-08-22 18:29 by 淀粉搬运工
[教师之家] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +4 2JOx3r2CYEgw 2026-08-21 4/200 2026-08-22 16:52 by sunzitan
[基金申请] 今天基金会出结果吗?20260819 +16 kkkl_v 2026-08-19 17/850 2026-08-22 16:12 by 阿布Abu
[基金申请] 建议基金发布提前给出明确的时间点 +10 kulium 2026-08-21 13/650 2026-08-21 21:58 by alongwaytogo
[基金申请] 今日不放榜?网传国自然预计 8 月 27 日可查结果 +16 医学老男孩 2026-08-20 20/1000 2026-08-21 21:13 by Ldrop2023
[基金申请] 让我中一个面上吧! +11 大萍1987 2026-08-20 13/650 2026-08-21 14:48 by 20120902066
[基金申请] 感觉是下周放榜了 +7 angus9576 2026-08-17 12/600 2026-08-21 13:38 by weiyin
[基金申请] 应该是下周三26日公布了吧? +4 哈哈蛤? 2026-08-21 4/200 2026-08-21 10:58 by Vivilian
[论文投稿] 投稿咨询 +5 wwm09 2026-08-17 7/350 2026-08-21 10:11 by 期刊论文帮手
[基金申请] 今天系统多次维护,明天很可能放榜! +10 zju2000 2026-08-16 11/550 2026-08-20 20:02 by cl479861084
[基金申请] 朋友圈看到的 +6 wangzilk 2026-08-18 8/400 2026-08-19 10:55 by Haru815
[基金申请] 明天放榜? +5 Shxjjxjkx 2026-08-18 5/250 2026-08-18 18:14 by -大大大大大-
信息提示
请填处理意见