[英]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()
找到換行符時,它將中斷。 我該如何編碼?
使用fgets()
或getline()
將行讀入緩沖區( @John Coleman getline()
。
解析字符串以查找可能包含'\\n'
空格,如果找到則退出循環。 然后調用strtol()
或sscanf()
讀取1號。 還要檢查該函數的返回值是否有錯誤。
重復上述步驟。
我實際上是編程的新手,並且不了解大多數功能。 我知道的唯一字符串函數是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.