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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言中输入一串以空格分隔的整型数据,怎么办?相关的知识,希望对你有一定的参考价值。

数据个数不知道,只知道数据间以空格分隔,最后一个数据之后也有空格,然后再回车输入终止。怎么实现这样的输入呢?

需要准备的工具:电脑。

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控制即可。

参考技术A

    scanf函数输入时,自动以空格作为分隔符,不会读入空格。在scanf函数输入数据时,不需要考虑空白类字符的存在(空格,跳格,换行)。

    例程:

    #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;

参考技术B #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;
本回答被提问者采纳
参考技术C 用while循环判断就行
每次获取后 用getchar吃掉一个空格
参考技术D int sz[100];
int temp,i=0;
scanf("%d",&temp);
while(temp!='\n')

sz[i++]=temp;
scanf("%d",temp);

以上是关于C语言中输入一串以空格分隔的整型数据,怎么办?的主要内容,如果未能解决你的问题,请参考以下文章

C语言 一行数据 空格分隔

C语言怎样将数字从文件里逐个读取出来

C语言中的整型提升

C语言中的整型提升

C语言,目的:输入一串数字,用空格隔开,然后赋值给数组

C语言 读取数字