如何结束整个节目 我有一个非常简单的C++控制台程序。它工作得很好,但我有一些问题。 我有两个功能。第一个名为“输入”的函数要求用户输入6到10的数字。我在该函数中声明: if ((a[i][j] < 6) || (a[i][j] > 10)) { cout<<"Invalid input!"; return 0; }

如何结束整个节目 我有一个非常简单的C++控制台程序。它工作得很好,但我有一些问题。 我有两个功能。第一个名为“输入”的函数要求用户输入6到10的数字。我在该函数中声明: if ((a[i][j] < 6) || (a[i][j] > 10)) { cout<<"Invalid input!"; return 0; },c++,C++,我的问题是。当我输入的数字不是6-10时,我的程序仍然执行“输出”功能,所以它会打印一些随机数。当输入规则被破坏时,我如何在准确的时间内破坏整个程序?没有任何随机输出和东西,只是打印“无效输出”,然后从一开始就启动程序 if(input(matrix,number) != 0) output(matrix,number); // You don't {} for a single instruction 这会解决你的问题 这将解决您的问题。在调用output()之前,您可以检查input

我的问题是。当我输入的数字不是6-10时,我的程序仍然执行“输出”功能,所以它会打印一些随机数。当输入规则被破坏时,我如何在准确的时间内破坏整个程序?没有任何随机输出和东西,只是打印“无效输出”,然后从一开始就启动程序

 if(input(matrix,number) != 0) output(matrix,number); 
 // You don't {} for a single instruction
这会解决你的问题


这将解决您的问题。

在调用
output()
之前,您可以检查
input()的返回值。

您可以使用
exit()
函数终止程序

您可以在调用
output()
之前检查
input()的返回值。

您可以使用
exit()
函数终止程序

指示错误的常用方法是引发异常

int main() {
    ...
    try {
        input(matrix, number);
        output(matrix, number);
    } catch(std::exception& e) {
        std::cout << "Error: " << e.what();
    }
}
intmain(){
...
试一试{
输入(矩阵、数字);
输出(矩阵、数字);
}捕获(标准::异常&e){

std::cout指示错误的常用方法是抛出异常

int main() {
    ...
    try {
        input(matrix, number);
        output(matrix, number);
    } catch(std::exception& e) {
        std::cout << "Error: " << e.what();
    }
}
intmain(){
...
试一试{
输入(矩阵、数字);
输出(矩阵、数字);
}捕获(标准::异常&e){

std::cout如果输入函数在无效输入时返回0,在成功时返回另一个值,则可以运行循环,直到输入有效

...

while(input(matrix,number) == 0);

...

如果输入函数在无效输入时返回0,在成功时返回另一个值,则可以运行循环,直到输入有效

...

while(input(matrix,number) == 0);

...

有很多解决方案。一种是声明
input
函数以返回整数。成功时
input
可以返回
0
。失败时(输入超出范围6-10)
input
返回负数(
-1
为简单起见)。在主函数中,使用while循环继续调用
input
,直到它返回0表示成功。每次
input
失败时,您都可以打印一条消息,告诉客户端进入并重试。如果要在第一次
输入失败后立即退出,可以调用
exit(1)
main
中有很多解决方案。一种是声明
input
函数以返回整数。成功
input
时可以返回
0
。失败时(输入超出范围6-10)
input
返回负数(
-1
为简单起见)。在主函数中,使用while循环继续调用
input
,直到它返回0表示成功。每次
input
失败时,您都可以打印一条消息,告诉客户端进入并重试。如果要在第一次
输入失败后立即退出,可以调用
exit(1)
main中

惯用代码如下:

while(input (matrix, number)) //idiomatic loop
{
    output (matrix, nubmer);
}
输入无效时,
input()
函数应返回
false
0
,输入有效时应返回
true
或非零


上面的循环与我们编写的
std::istream
习惯用法的形式相同:

 std::string word;
 while( std::cin >> word ) 
 {
     //..
 }

 //Or

 ifstream file;
 //...
 while( file >> word ) 
 {
     //..
 }

 //Or
 while( std::getline(file, word)) 
 {
     //..
 }
我刚才在这里解释了这个成语的用法:


    • 惯用代码如下:

      while(input (matrix, number)) //idiomatic loop
      {
          output (matrix, nubmer);
      }
      
      输入无效时,
      input()
      函数应返回
      false
      0
      ,输入有效时应返回
      true
      或非零


      上面的循环与我们编写的
      std::istream
      习惯用法的形式相同:

       std::string word;
       while( std::cin >> word ) 
       {
           //..
       }
      
       //Or
      
       ifstream file;
       //...
       while( file >> word ) 
       {
           //..
       }
      
       //Or
       while( std::getline(file, word)) 
       {
           //..
       }
      
      我刚才在这里解释了这个成语的用法:


      发布完整的代码。它是否首先打印“无效输入”?请给我几秒钟时间发布整个代码,因为它是用我的母语编写的,所以你不会理解。如果你的输入函数在无效输入时返回0,成功时是否会返回另一个值?你可以在循环中检查输入函数的返回值。发布完整的代码。它是否RIET“无效输入”放在第一位?给我几秒钟后,把它全部用我的母语,这样你就不会理解。如果你的输入函数在无效输入上返回0,它是否返回另一个成功值?你可以在循环中检查输入函数的返回值。你显然比我知道更多关于C++的内容。但是我从不使用EX。检查用户输入是否有效的异常。我只在异常情况下使用异常,这种情况永远不会发生。用户可能会做出无意义的输入。@Lucas:程序终止是一种异常情况。是吗?大多数程序都必须在某个点终止。在这种情况下,我会让程序终止只是我的正常情况的一部分l控制流。但我猜这是有争议的。显然,你比我更了解C++。但是我从不使用异常来检查用户输入是否有效。我只使用异常情况下的异常,这是不应该发生的。预期用户会做出无意义的输入。@卢卡斯:程序终止是一个异常的情况。是不是?grams必须在某个点终止。在这种情况下,我会使程序终止只是我正常控制流的一部分。但我想这是有争议的。
      !=0
      可以省略。
      !=0
      可以省略。