C使用用户输入结束循环

C使用用户输入结束循环,c,arrays,input,while-loop,scanf,C,Arrays,Input,While Loop,Scanf,我正试图编写一个程序,让用户在数组中插入整数值,直到他们输入一个特定的键停止,比如enter或X 我知道这是错误的,但这是我的思考过程。有什么想法吗?谢谢你的帮助 在使用int-array_-numb[100]时,在数组中输入所需的任意多个值,总有一天你会遇到麻烦。如果用户在输入前输入了100多个数字,该怎么办?你会占用分配的内存,不是吗 您应该检查scanf()的返回值,以确保输入正确。提供的格式说明符与输入类型不匹配将导致scanf()失败。详细信息请查看 您需要在while(1)循环中包含

我正试图编写一个程序,让用户在数组中插入整数值,直到他们输入一个特定的键停止,比如enter或X

我知道这是错误的,但这是我的思考过程。有什么想法吗?谢谢你的帮助

  • 在使用
    int-array_-numb[100]时,在数组中输入所需的任意多个值
    ,总有一天你会遇到麻烦。如果用户在输入前输入了100多个数字,该怎么办?你会占用分配的内存,不是吗

  • 您应该检查
    scanf()
    的返回值,以确保输入正确。提供的格式说明符与输入类型不匹配将导致
    scanf()
    失败。详细信息请查看

  • 您需要在
    while(1)
    循环中包含
    break
    语句才能中断。否则,您需要在
    while()
    循环的控制表达式中有一个条件语句来终止循环

  • 注意:嗯,停止扫描用户输入的最佳方法是将
    scanf()
    的返回值与
    EOF
    进行比较,这可以通过在linux上按CTRL+D和在windows中按CTRL+Z来产生

    你可以查一下你的参考资料

  • 在使用
    int-array_-numb[100]时,在数组中输入所需的任意多个值
    ,总有一天你会遇到麻烦。如果用户在输入前输入了100多个数字,该怎么办?你会占用分配的内存,不是吗

  • 您应该检查
    scanf()
    的返回值,以确保输入正确。提供的格式说明符与输入类型不匹配将导致
    scanf()
    失败。详细信息请查看

  • 您需要在
    while(1)
    循环中包含
    break
    语句才能中断。否则,您需要在
    while()
    循环的控制表达式中有一个条件语句来终止循环

  • 注意:嗯,停止扫描用户输入的最佳方法是将
    scanf()
    的返回值与
    EOF
    进行比较,这可以通过在linux上按CTRL+D和在windows中按CTRL+Z来产生

    你可以查一下你的参考资料

  • 在使用
    int-array_-numb[100]时,在数组中输入所需的任意多个值
    ,总有一天你会遇到麻烦。如果用户在输入前输入了100多个数字,该怎么办?你会占用分配的内存,不是吗

  • 您应该检查
    scanf()
    的返回值,以确保输入正确。提供的格式说明符与输入类型不匹配将导致
    scanf()
    失败。详细信息请查看

  • 您需要在
    while(1)
    循环中包含
    break
    语句才能中断。否则,您需要在
    while()
    循环的控制表达式中有一个条件语句来终止循环

  • 注意:嗯,停止扫描用户输入的最佳方法是将
    scanf()
    的返回值与
    EOF
    进行比较,这可以通过在linux上按CTRL+D和在windows中按CTRL+Z来产生

    你可以查一下你的参考资料

  • 在使用
    int-array_-numb[100]时,在数组中输入所需的任意多个值
    ,总有一天你会遇到麻烦。如果用户在输入前输入了100多个数字,该怎么办?你会占用分配的内存,不是吗

  • 您应该检查
    scanf()
    的返回值,以确保输入正确。提供的格式说明符与输入类型不匹配将导致
    scanf()
    失败。详细信息请查看

  • 您需要在
    while(1)
    循环中包含
    break
    语句才能中断。否则,您需要在
    while()
    循环的控制表达式中有一个条件语句来终止循环

  • 注意:嗯,停止扫描用户输入的最佳方法是将
    scanf()
    的返回值与
    EOF
    进行比较,这可以通过在linux上按CTRL+D和在windows中按CTRL+Z来产生


    您可以查看您的参考资料。

    同样的事情也可以实现,如下所示:
    scanf()
    可能会失败并检查返回值。扫描字符时,scanf()失败

    inti=0;
    printf(“在数组中输入所需数量的值,按x将结束循环\n”);
    
    而(i同样的事情可以实现如下所示:
    scanf()
    可能会失败并检查返回值。扫描字符时,scanf()会失败

    inti=0;
    printf(“在数组中输入所需数量的值,按x将结束循环\n”);
    
    而(i同样的事情可以实现如下所示:
    scanf()
    可能会失败并检查返回值。扫描字符时,scanf()会失败

    inti=0;
    printf(“在数组中输入所需数量的值,按x将结束循环\n”);
    
    而(i同样的事情可以实现如下所示:
    scanf()
    可能会失败并检查返回值。扫描字符时,scanf()会失败

    inti=0;
    printf(“在数组中输入所需数量的值,按x将结束循环\n”);
    
    而(i
    scanf
    )和
    %i
    ,在插入无效数据(如字符)时将无法扫描数字,如果扫描失败,将返回0(在您的情况下)

    只需检查scanf的返回值即可。如果返回值为零,请使用

    if(getchar()=='x') //or if(getchar()==quit)
      break;
    
    注意:使用清除/刷新标准输入流(
    stdin


    循环之后以及
    中断之后;
    scanf
    ,使用
    %i
    ,当插入无效数据(如字符)时,将无法扫描数字并返回
    int i=0;
    printf("Enter as many values into the array as you want, pressing x will end the loop\n");
    while(i<100 && scanf("%d",&array_numb[i])==1)
    {
       i++;
    }
    
    if(getchar()=='x') //or if(getchar()==quit)
      break;
    
    int c;
    while((c=getchar())!='\n' && c!=EOF);