中易网

C语言中输入一串以空格分隔的整型数据,怎么办?

答案:5  悬赏:50  
解决时间 2021-02-02 11:43
数据个数不知道,只知道数据间以空格分隔,最后一个数据之后也有空格,然后再回车输入终止。怎么实现这样的输入呢?
最佳答案
需要准备的工具:电脑。
1、当要向输出设备(显示屏、打印机等)输出字符时,可以用 c 格式描述符控制。如下所示代码即输出字符ch (a) :char ch = 'a';printf("Character: %c \n",ch);



2、在需要输出十进制数字时,可以用d 或 i 控制输出,如下所示: int dcm = 24; printf("Decimal number: %d\n",dcm); printf("Decimal number: %i\n",dcm);



3、八进制输出如下所示,利用 o 或 #o 控制输出八进制格式数字:int oct = 24;printf("Octal1: %o\n",oct);printf("Octal2: %#o\n",oct);



4、十六进制输出同八进制一样,利用 x 或 #x 可以输出控制十六进制格式数字,如下所示:int hexi = 234;printf("Hexidecimal1: %x\n",hexi);printf("Hexidecimal2: %#x\n",hexi);



5、 字符串输出,在C语言中输出字符串可以使用s控制即可。

全部回答
用while循环判断就行 每次获取后 用getchar吃掉一个空格
#include <stdio.h> #include <stdlib.h> #include <ctype.h> #define max_number_len 32 int getword(char buf[], int len, int *isend) { int i=0; int ch; *isend = 0; do{ ch = getchar(); }while( !(ch==eof || ch=='\n' || isdigit(ch)) ); while( isdigit(ch) ) { if(i<len-1){ buf[i++] = ch; } ch = getchar(); } buf[i] = '\0'; if( ch==eof || ch=='\n' ) *isend = 1; return i; } int main(int argc, char *argv[]) { char buf[max_number_len]; int isend; do{ if( getword(buf, max_number_len, &isend)>0 ) { int n = atoi(buf); //请把n 存起来,存到数组或者链接中 printf("%d ", n); } }while(!isend); printf("\n"); return 0; }
#include <stdio.h> #include <stdlib.h> #include <ctype.h> #define MAX_NUMBER_LEN 32 int getword(char buf[], int len, int *isend) { int i=0; int ch; *isend = 0; do{ ch = getchar(); }while( !(ch==EOF || ch=='\n' || isdigit(ch)) ); while( isdigit(ch) ) { if(i<len-1){ buf[i++] = ch; } ch = getchar(); } buf[i] = '\0'; if( ch==EOF || ch=='\n' ) *isend = 1; return i; } int main(int argc, char *argv[]) { char buf[MAX_NUMBER_LEN]; int isend; do{ if( getword(buf, MAX_NUMBER_LEN, &isend)>0 ) { int n = atoi(buf); //请把n 存起来,存到数组或者链接中 printf("%d ", n); } }while(!isend); printf("\n"); return 0; }
1. scanf函数输入时,自动以空格作为分隔符,不会读入空格。在scanf函数输入数据时,不需要考虑空白类字符的存在(空格,跳格,换行)。 2. 例程: #include <stdio.h> #include <stdlib.h> int main() {     int arr[10] = {0};     int numdoll = 0;     while (scanf("%d",&arr[numdoll]) != EOF && getchar() != '\n') //循环读入多组整型数据,都以空格分隔。     numdoll++;     for(int i = 0; i < 10; i++)     printf("%d ", arr[i]);     return 0; }
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
工业厂房如何去估算变压器,(不确定有什么设
保康县畜康生猪养殖合作社在什么地方啊,我要
佤族寨在什么地方啊,我要过去处理事情
经常小肚子疼,拉肚子怎么办?
江津市中渡服装厂在哪里啊,我有事要去这个地
尚K量贩KTV海埂路店地址在什么地方,想过去办
和信茂元国际大酒店停车场这个地址在什么地方
北站东路北五巷/S107(路口)地址有知道的么?
开心老婆这个地址在什么地方,我要处理点事
力晨粗粮坊在哪里啊,我有事要去这个地方
安泰阀门我想知道这个在什么地方
舒视眼镜地址有知道的么?有点事想过去
拍电视剧用绊马索把马绊倒马会残废吗? 看电视
dota火女怎么杀屠夫??
香山园宾馆我想知道这个在什么地方
推荐资讯
瓶子高25厘米,里面装了400毫升油,油面高14
广西共富房地产开发公司这个地址在什么地方,
蜡烛燃烧自已照亮别卜,由此联想到舍已为人的
哪位大神可以帮我查下火车站窗口购票记录,如
东场村地址有知道的么?有点事想过去
索纳塔自动变速箱滤芯怎样更换
世纪大道/花园街(路口)我想知道这个在什么地
大众的捷达和速腾具体有什么差别的
手机掉水后开不了机
日月峡服务区-超市怎么去啊,有知道地址的么
回味牛肉馆在哪里啊,我有事要去这个地方
农大通讯行在什么地方啊,我要过去处理事情
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?