簡體   English   中英

如何輸入不帶空格或'\\ n'的整數數組?

[英]How to input an integer array without spaces or '\n'?

我想輸入一個整數數組而不給空格。

例如:032146548,每個整數應分別存儲在數組中,

i.e a[0]=0,a[1]=3,a[2]=2 and so on.

我怎樣才能做到這一點 ?

我認為說“每個數字”更清楚,因為一旦知道字符序列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;
  }
}

如果您要從文件中讀取文件,請使用此文件,

int i=0;
while(scanf("%1d",&a[i])==1)
{
     i++;
}

如果您知道有多少輸入,請使用此選項

for(int i=0;i<inputLength;i++)
{
    scanf("%1d",&a[i]);
}
#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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM