2013-02-21 78 views
1

我正在做一個家庭作業,我需要編寫的一個函數是一個簡單的函數,它允許用戶輸入一個將進入數組的int。其中一個條件是檢查輸入是否失敗,如果確實如此,則使用「死亡」功能結束程序。如何檢查輸入是否未放入數組?我應該檢查輸入是int嗎?謝謝您的幫助。如何檢查輸入數組是否失敗?

void input(unsigned a[], unsigned elements){ 


    for (unsigned i = 0; i < elements; i++) { 
     cout << "Enter a number for index #" << i <<" in the array:" << endl; 
     cin >> a[i]; 
    } 

    // Add die function if this function fails... 

} 

bool die(const string &msg) { 
    cerr <<endl << "fatal error: " <<msg <<endl; 
    exit(EXIT_FAILURE); 
} 
+0

你爲什麼不輸入一個字符串,然後檢查字符串是一個有效的數字。 – OldProgrammer 2013-02-21 22:37:26

+0

函數原型必須和教授的一樣。 – user1681673 2013-02-21 22:39:20

+0

[The Definitive C++ Book Guide and List](http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list) – 2013-02-21 22:42:35

回答

2

像這樣:

if (!(cin >> a[i])) { die("boo"); } 
+0

如果輸入爲零,該怎麼辦? – user1681673 2013-02-21 22:43:16

+0

那麼,零是一個有效的輸入,不是嗎? (這是一個無符號整數) – leemes 2013-02-21 22:43:56

+0

好吧,我只是在檢查。我過去使用過(!(聲明)),但可能不確定它的含義。我認爲這意味着「如果輸入爲零」。那是錯的嗎?謝謝您的幫助。 – user1681673 2013-02-21 22:46:17

0

無效輸入(一個無符號[],無符號​​的元素) {

for (unsigned i = 0; i < elements; i++) { 
    cout << "Enter a number for index #" << i <<" in the array:" << endl; 
    cin >> a[i] || die("Error"); 
}