我想输入一个整数数组而不给出空格。
例如: - 032146548,每个整数应该清楚地存储在数组中,
i.e a[0]=0,a[1]=3,a[2]=2 and so on.
我该怎么做?
答案 0 :(得分:1)
我认为说“每个数字”更清楚,因为一旦你知道它应该是什么,字符序列032146548
代表多少“整数”(通常的做法是“一个”)并不明显几个。
最简单的方法是将其作为一串数字读取,然后通过减去'0'
将每个数字转换为整数数字:
char line[12];
unsigned int a[10];
if(fgets(line, sizeof line, stdin) != NULL)
{
const size_t digits = strlen(line) - 1;
for(size_t i = 0; i < sizeof a; ++i)
{
if(i < digits && isdigit((unsigned int) line[i]))
a[i] = line[i] - '0';
else
a[i] = 0;
}
}
答案 1 :(得分:0)
如果您正在阅读文件
,请使用此选项int i=0;
while(scanf("%1d",&a[i])==1)
{
i++;
}
如果您知道有多少输入,请使用此
for(int i=0;i<inputLength;i++)
{
scanf("%1d",&a[i]);
}
答案 2 :(得分:0)
#include <stdio.h>
int main(){
int a[16];
int i, j, stat;
char ch[2] ={0};
for(i=0;i<16;++i){
if(1!=(stat=scanf("%1d%1[^0-9]", &a[i], ch))){
if(stat==2)
++i;
break;
}
}
for(j=0;j<i;++j)
printf("%d ", a[j]);
printf("\n");
return 0;
}