2013-02-21 79 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"); 
}