为什么在Vim中运行C代码会跳过scanf()?

汤姆1

我正在用gcc C编译器在Arch Linux中使用neovim,这就是我在.vimrc中使用的用于编译和运行的东西

map <F5> :w <CR> :!gcc % -o %< && ./%< <CR>

问题是我的代码可以正常运行,但是任何scanf()函数都不会提示输入,并且会在程序运行时被忽略。即使使用vim编译后,然后在单独的zsh终端中运行,它也允许我在使用以下命令运行代码时输入值./x

提前致歉,我是vim的新手,因此想使用它来加快我的工作流程。

以下代码显示了该问题:

#include <stdio.h>

int main()
{
    char Team1[20]; 
    char Team2[20]; 
    int team1Score, team2Score; 
    printf("Please enter the name of team one: ");
    scanf("%s", Team1);
    printf("Please enter the name of team two: ");
    scanf("%s", Team2);
    printf("Please enter the score for %s: ", Team1); 
    scanf("%d", & team1Score); 
    printf("Please enter the score for %s: ", Team2); 
    scanf("%d", & team2Score);
    if (team1Score > team2Score)
    {
        printf("%s scores 3 points and %s scores 0 points", Team1, Team2 );
    }
    else
      if (team1Score < team2Score) 
        {
            printf("%s scores 3 points and %s scores 0 points", Team2, Team1 ); 
        }
        else
    {
            printf("Both %s and %s score 1 point", Team1, Team2); 
    }
    return 0;
}
斯多巴克

故障可能不在您的程序中,而是vim执行它的方式。如果查看:!命令文档,则可以看到以下内容:

该命令在连接到管道(不是终端)的非交互式外壳中运行。

非交互式外壳是指不允许输入用户命令的外壳。您的程序不会从终端读取scanf输入,而是从vim创建的管道读取。

如果您使用的是vim的最新版本(如果我是对的,则为8.0或更高版本)或neovim,则可以使用:term命令打开终端。在该终端中,您将能够输入用户输入。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么会跳过 scanf()?

为什么会跳过此代码的“标志 5”?为什么 if 语句没有运行?

无法弄清楚为什么代码会跳过 javascript 中的 if 语句

为什么在发生任何错误时,以别名“ vi”运行的vim会返回非零退出代码?

为什么以下代码会运行?

为什么我的代码会跳过某些节点?

为什么scanf在freopen函数中跳过'\ n'?

为什么在语言C的嵌套循环中跳过scanf()?

为什么会跳过列?

为什么我的代码在空闲状态下运行而不在 vim 中运行?

为什么低于0.25的time()会跳过Python中的动画?

为什么scanf跳过'\ r'但读取'\ n?

Xcode中的C Scanf跳过

为什么在Rstudio中运行Python代码会产生多余的文本?

为什么Vim会忽略〜/ .vim / after / ftplugin中的文件?

为什么ChartJS在此代码段中跳过xAxis标签?

为什么带有 concurrent.futures.thread 的代码会跳过小部件操作?

为什么我的 BASH 编译器会跳过我的代码?

Scanf不是在扫描%c字符,而是跳过该语句,为什么呢?

cron为什么会“跳过”计划的工作

为什么javascript会跳过某些功能?

在vim中,:tselect为什么会显示错误的列表?

为什么下面的 C 代码会跳过 read() 系统调用来执行下一个 write() 系统调用?

为什么我会从此代码中收到VBA运行时错误“ 424”对象必需错误?

为什么在将数据键入表之前,代码会多次运行?如何制作在ui中创建表格的操作按钮?

为什么在运行我的代码时会跳过一行?

为什么Xcode跳过循环代码?

为什么我的代码跳过了if语句?

为什么第二个scanf被跳过?