2015-10-07 66 views
-2

我需要得到輸入的INT1形式的函數整數,INT2...INTN。 我需要將這些整數的值存儲在數組中。一個單獨的函數用於獲取要讀取的整數數量。我怎樣才能使這兩個功能的工作?如何讀取一個逗號和空格分隔成一個數組用C

如果現在還不清楚,這件事情是這樣的:

功能1得到一個整數以獲取輸入的數量被讀取。然後,函數2將讀取輸入加上一個,但輸入必須位於一行中,並且必須用逗號和/或空格分隔。

功能1得到,例如。功能2將想要讀取輸入,如:3,21,5,1,5,2,並將其存儲到一個單獨的陣列供以後使用。

任何人都可以幫忙嗎?謝謝。我想過使用循環,但我記得輸入必須在一行中。也許scanf?用[^,]?但是,如何使它與第一個功能一起工作?

+0

是的。但問題是我不知道用戶會給該程序什麼輸入。我發現的唯一代碼(來自其他帖子)就是這樣的 scanf(「%4 [^,],%4 [^,],%79 [^,],%d」,sem,type,title ,&value); 但是如果用戶給第一個功能賦予「8」會怎樣?第二個函數必須讀取「8 + 1」整數。 – fixotherm

+0

而在另一種情況下,用戶可能會輸入另一個數字,這意味着讀取輸入的代碼將不得不再次更改以適應輸入的數量。感謝您的回覆:) – fixotherm

回答

1

試試這個:

#include <stdio.h> 

void getInput(int sizeOfInput, int arr[]) { 
    int i = 0; 
    printf("IN"); 
    for(; i < sizeOfInput - 1; ++i) { 
    scanf("%d, ", &arr[i]); 
    } 
    scanf("%d", &arr[i]); 
    printf("OUT"); 
} 

main(){ 
    int sizeOfInput = 0; 
    printf("Enter how many numbers do you want to enter?"); 
    scanf("%d", &sizeOfInput); 

    int arr[sizeOfInput]; 
    getInput(sizeOfInput, arr); 
} 

對不起我懶,但你要學會這將是最好弄清楚這個代碼做什麼你使用它之前,這也是一個原因,我沒有發表評論它。

+0

謝謝。我知道它是如何工作的。哈哈, – fixotherm

相關問題