Gordon1 发表于 2024-2-8 15:16:43

我这段代码为什么一直重复输出矩阵已存在,是否需要重新创建(Y/N)->

if(count2>1)
                        {
                                printf("矩阵已存在,是否需要重新创建(Y/N)->");
                                scanf("%c",&Y_N);
                                switch(Y_N)
                                {
                                        case 'Y':break;
                                        case 'N':continue;break;
                                        default:continue;break;
                                }
                        }

FishC 发表于 2024-2-8 15:16:52

这个问题是因为在输入 Y 或者 N 后,回车键也被读取到了,导致下一次的输入操作直接读取到了回车键,而不是用户的输入。

解决这个问题的方法是,在 `scanf` 函数中添加一个空格,将其用来吸收掉多余的回车键。修改后的代码如下:

if (count2 > 1) {
    printf("矩阵已存在,是否需要重新创建(Y/N)-> ");
    scanf(" %c", &Y_N);// 在 %c 前面添加一个空格
    switch (Y_N) {
      case 'Y': break;
      case 'N': continue; break;
      default: continue; break;
    }
}

这样就能够正确地获取用户输入并进行判断了。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

某一个“天” 发表于 2024-2-8 16:34:06

{:10_256:}
页: [1]
查看完整版本: 我这段代码为什么一直重复输出矩阵已存在,是否需要重新创建(Y/N)->