c++ Visual Studio代码:从用户获取输入

nc1teljy  于 2023-02-17  发布在  其他
关注(0)|答案(6)|浏览(130)

目前,我正在尝试用Visual Studio代码编写C/C++程序。为此,我安装了两个扩展:C/C++C++ Intellisense
根据文档,调试工具不适用于windows。我已经能够构建和运行代码与以下任务:

{
    "version": "0.1.0",
    "command": "cmd",
    "isShellCommand": true,
    "args": [
        "/C"
    ],
    "tasks": [
        {
            "taskName": "Makefile",
            "suppressTaskName": true,
            // Make this the default build command.
            "isBuildCommand": true,
            // Show the output window only if unrecognized errors occur.
            "showOutput": "always",
            // No args
            "args": [
                "C:/Programs/cygwin/bin/make.exe",
                "all"
            ],
            // Use the standard less compilation problem matcher.
            "problemMatcher": {
                "owner": "cpp",
                "fileLocation": [
                    "relative",
                    "${workspaceRoot}"
                ],
                "pattern": {
                    "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
                    "file": 1,
                    "line": 2,
                    "column": 3,
                    "severity": 4,
                    "message": 5
                }
            }
        },
        {
            "taskName": "Run",
            "suppressTaskName": true,
            "isTestCommand": true,
            "args": [
                "helloworld"
            ]
        }
    ]
}

和一个简单的Makefile

all: clean helloworld

helloworld: helloworld.cpp
    C:/Programs/cygwin/bin/g++ helloworld.cpp -o helloworld

clean:
    C:/Programs/cygwin/bin/rm -rf helloworld

但是,当程序在运行时需要一些用户输入时,问题就出现了。假设针对这个非常熟悉的helloworld程序。

# include <iostream>

using namespace std;

int main ()
{
  int name;

  cin >> name;

  cout << "Hello, " << name << "!!!" << endl;

  return 0;
}

你能帮我在运行时得到用户输入吗?有一种变通方法可以将输入作为命令行参数传递。但是,这对于具有复杂流程的程序是不可能的。

lmvvr0a8

lmvvr0a81#

转到Code -> Preferences -> Settings并添加自定义设置:

{
   "code-runner.runInTerminal": true
}

最后运行你的c++代码,你将能够在控制台输入值

axzmvihb

axzmvihb2#

进入设置(ctrl+,)-〉搜索设置-〉:编码员:在终端运行-选中此选项,您将能够直接在接受输入的终端中运行代码。:)

ssgvzors

ssgvzors3#

确保您的VS代码上安装了代码运行器。
从顶部选择:文件〉首选项〉设置
在设置中搜索代码运行程序并选中复选框:

默认情况下它保持未选中状态。您必须启用它才能在终端中运行您的首选语言。

cnjp1d6j

cnjp1d6j4#

转到“设置”,然后搜索“代码运行者:运行终端”并检查它。这就是我如何修复它。

tuwxkamq

tuwxkamq5#

作为一种附加的便利,您还可以将注解输入到集成终端中。
示例:

# include <iostream>
using namespace std;
int main ()
{
  int name;
  cin >> name;
  cout << "Hello, " << name << "!!!" << endl;
  return 0;
}
/*input
123
*/

扩展链接--
备注输入:https://marketplace.visualstudio.com/items?itemName=virresh.cinp
注意:这个扩展依赖于code-runnercode-runner是另一个可以运行几乎所有语言的脚本的扩展(您也可以指定自定义构建选项)
免责声明:我是此扩展的作者

fd3cxomn

fd3cxomn6#

如果你遇到和我一样的问题,集成终端无法读取用户的输入,如下挂起(env. windows 10)x1c 0d1x
我的解决方案是将cygwin的gdb和g ++替换为mingw 64的。
则输入/输出正常

相关问题