| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 619 人关注过本帖
标题:新人,帮帮忙啊
取消只看楼主 加入收藏
lisanhu1
Rank: 2
等 级:论坛游民
帖 子:31
专家分:78
注 册:2010-6-24
结帖率:75%
收藏
已结贴  问题点数:20 回复次数:1 
新人,帮帮忙啊
我看书上讲C的scanf语句中有这样的情况,可以在其中输入字符串,这样只有在输入的时候照原样输入才会被判定有效,我就想到了这样一段代码,我想让**号处的语句在输入的时候必须输入前面的a的值才能成有效的输入。我运行了这个程序,发现只有在a比较大的时候才有效,比如如果输入的是999999,那么就会有这样的显示
#include "stdio.h"
void main()
{
    int a;
    char b;
    scanf("%d",&a);
    printf("%d\n",a);
    scanf("%d,%c",a,&b);/*******/
    printf("%c",b);
    getch();
}
我运行了这个程序,发现只有在a比较大的时候才有效,比如如果输入的是999999,那么就会有这样的显示
999999
999999
然后我输入a的值加,加一个字母
999999,c
这样就会输出字母c和我猜测的一样,但如果a比较小比如11111,那么程序就会出现停止运行然后关闭的情况,这是怎么一回事啊
求高手指点
搜索更多相关主题的帖子: 新人 
2010-11-05 14:00
lisanhu1
Rank: 2
等 级:论坛游民
帖 子:31
专家分:78
注 册:2010-6-24
收藏
得分:0 
回复 5楼 蚂蚁的哲学
谢谢了,我的问题你弄错了,我的意思是scanf函数中不是有一种情况,必须输入固定的字符吗,如
scanf("m=%d",&a);
这个语句只有在输入m=后才能合法输入,否则输入是无效的
我想%d这种格式符号可否用作表示一个常数来用,第一个没有地址符号就可以用%d表示具体的数值,
第二个有地址符号就用来存储数据
我觉得如果说C中不能用格式符号替代具体的数字的话就没必要规定在scanf函数中必须有地址符号了,
那样不是更简洁?
这个问题好像跟你说的溢出有点关系,65535是64k的字节数嘛,然后就发现在输入的数字大于65535
的时候出现后边输入的字母,如果不大于就停止程序
而且发现如果把'a,'删除那么就算输入%d也无法正常输入数据,所以这个%d也肯定是起作用了。
能帮忙再想想吗,谢谢了
2010-11-06 14:06
快速回复:新人,帮帮忙啊
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017092 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved