簡體   English   中英

如何在C中讀取變化量的整數輸入?

[英]How can I read a varying amount of integer input in C?

我將獲得三行輸入。 第一行將給我2個整數,第三行將給我1個整數。 但是第二行可以給我整數,范圍是1到100。例如,輸入可以是:

2 1
5 6 1 9 2
10

或可能是:

10 4
5 6
9

我可以將整數輸入的第二行讀取到整數數組中,以獲取固定數量的整數,但不能讀取不同數量的整數。 我想在這種情況下,我應該使用while循環,當scanf()找到換行符時,它將中斷。 我該如何編碼?

  1. 使用fgets()getline()將行讀入緩沖區( @John Coleman getline()

  2. 解析字符串以查找可能包含'\\n'空格,如果找到則退出循環。 然后調用strtol()sscanf()讀取1號。 還要檢查該函數的返回值是否有錯誤。

  3. 重復上述步驟。

我實際上是編程的新手,並且不了解大多數功能。 我知道的唯一字符串函數是strlen()strcmp() 我的I \\ o函數知識僅限於printf()scanf()

無論如何,我以這種方式解決了我的問題:

int a[101];
int i, num;
char ch;

for (i = 0; i < 101; i++)
    a[i] = 0;

while (1)
{
    scanf("%d%c", &num, &ch);
    i = num;
    a[i] = num;
    if (ch == '\n')
        break;
}

這可行! num的值必須等於i因為我的程序需要它。

暫無
暫無

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

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