c语言怎样接受按行输入的一段用空格分开的数字

同上

在 scanf 中,从键盘输入的一切数据,不管是数字、字母,还是空格、回车、Tab 等字符,都会被当作数据存入缓冲区。存储的顺序是先输入的排前面,后输入的依次往后排。按回车键的时候 scanf 开始进入缓冲区取数据,从前往后依次取。















但 scanf 中 %d 只识别“十进制整数”。对 %d 而言,空格、回车、Tab 键都是区分数据与数据的分隔符。当 scanf 进入缓冲区中取数据的时候,如果 %d 遇到空格、回车、Tab 键,那么它并不取用,而是跳过继续往后取后面的数据,直到取到“十进制整数”为止。对于被跳过和取出的数据,系统会将它从缓冲区中释放掉。未被跳过或取出的数据,系统会将它一直放在缓冲区中,直到下一个 scanf 来获取。















但是如果 %d 遇到字母,那么它不会跳过也不会取用,而是直接从缓冲区跳出。

来自网页链接

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-04-07
假设有10个数字 用数组a[10]储存
你可以用循环输入 for(i=0;i<10;i++)scanf("%d",&a[i]);追问

不是输入一个数字按一个回车,是输完一行数字后再按回车

本回答被网友采纳
第2个回答  2015-04-07
scanf("%d %d",&a,&b); %d与%d之间要有空格
第3个回答  2015-04-07
scanf("%d %d %d",&a,&b,&c)
相似回答