Chinaunix

标题: 关于字符数组输出的问题 [打印本页]

作者: your1982    时间: 2005-01-14 08:58
标题: 关于字符数组输出的问题
代码:
char s[1000];
int i;
for(i=0;i<1000;i++)
scanf("%c",&s);
for(i=0;i<1000;i++)
printf("%c",s);

如果我输入的是:1 2 3....1000
为什么打印出来的不是1 2 3 ....1000 这些数呢?
作者: your1982    时间: 2005-01-14 09:06
标题: 关于字符数组输出的问题
是不是计算机自己的位数所决定的啊?
清高手指教!
作者: whpu000625    时间: 2005-01-14 09:16
标题: 关于字符数组输出的问题
你真强,难道你真的要输入1000个数啊!!
作者: your1982    时间: 2005-01-14 09:24
标题: 关于字符数组输出的问题
如果我要输出一个一千位的大数
用字符数组定义char s[1000],这样能输出吗?
为什么我们最多只定义char s[255]呢?
是不是计算机自身的位数决定的呢?
请高手指点!
作者: yuxh    时间: 2005-01-14 09:37
标题: 关于字符数组输出的问题
你输入一个10,按%c的格式,会当成'1'和'0'
作者: aero    时间: 2005-01-14 09:42
标题: 关于字符数组输出的问题
因为空格也算是字符哦,你当然也把它读进去啦。
作者: whpu000625    时间: 2005-01-14 09:44
标题: 关于字符数组输出的问题
因为你在输入的时候是按照这样的形式输入的:1 2 3 4 5 ……,你用的格式化输入是scanf("%c",&s)的形式,它会把你数字中间的空格也当作你输入的字符了,所以会最多输出255个数字字符,其实是有1000个,只是中间有很多空格也当作字符输出了,还有就是像楼上所的你输入100,它会当三个字符记录
作者: superdoctor    时间: 2005-01-14 09:45
标题: 关于字符数组输出的问题
int s[1000]
作者: your1982    时间: 2005-01-14 10:00
标题: 关于字符数组输出的问题
如果我输入的是23684739457895795597685745852463465....
一共有1000位.
还是用char s[1000];来定义这个数组 
输出时能够把这1000位全部输出吗?
作者: aero    时间: 2005-01-14 10:03
标题: 关于字符数组输出的问题
原帖由 "your1982" 发表:
定义这个数组 
输出时能够把这1000位全部输出吗?


能。
作者: whpu000625    时间: 2005-01-14 10:07
标题: 关于字符数组输出的问题
当然还可以了,它把每一个数字都当作一个字符存储,s[1000]可以存1000位的数字,只是数字中间不要包含任何非数字字符
作者: yuxh    时间: 2005-01-14 10:18
标题: 关于字符数组输出的问题
由于键盘缓冲区的原因,不能一次输入大于255个字符
也就是说输入255这字符后必须回车,这个回车会记到你的数组中,所以用%c的格式不好
作者: your1982    时间: 2005-01-14 10:21
标题: 关于字符数组输出的问题
但是我们老师却说用char定义的数组最多只能存放255位啊?
作者: superdoctor    时间: 2005-01-14 10:29
标题: 关于字符数组输出的问题
可以先setbuf吧
作者: kj501    时间: 2005-01-14 10:42
标题: 关于字符数组输出的问题
[quote]原帖由 "your1982"]但是我们老师却说用char定义的数组最多只能存放255位啊?[/quote 发表:

不要把数组元素的个数与char类型所能包括的数值范围搞混了。
作者: your1982    时间: 2005-01-14 10:55
标题: 关于字符数组输出的问题
在char定义的数组里面元素的个数是可以无限多个的吗?
我在定义大数如:
  char s[1000]={1267848747832478...}  总共1000位,这样是可以的吗?
那么char的定义大小范围是什么意思?
能举个例子说明吗?
作者: yuxh    时间: 2005-01-14 11:09
标题: 关于字符数组输出的问题
只要内存足够,char数组可以很大(当然不能超过MAXINT个,不然地址空间不够了),char s[1000]当然没问题
但默认的键盘缓冲是255个字节,所以输入的时候一次最多输入255个




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2