You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++中std::cin为何无法读取Visual Studio命令行参数?

问题解答:std::cin为何不读取Visual Studio设置的命令行参数?

你搞混了标准输入和命令行参数的输入逻辑:

  • std::cin 是从标准输入流(默认对应键盘)读取数据,和你在Debugging选项里设置的命令行参数完全是两个独立的输入渠道,所以它不会去读取命令行参数。
  • 你设置的「command arguments」是程序启动时传递给main函数的启动参数,必须通过main函数的专用形参来获取。

如果要读取你设置的"dingdong"参数,需要修改main函数为带参数的形式,示例代码如下:

#include <string>
#include <iostream>

// argc是参数总数,argv是存储参数的字符串数组
int main(int argc, char* argv[])
{
    if (argc > 1) {
        // argv[1]就是你设置的第一个命令行参数
        std::string firstName = argv[1];
        std::cout << "Your name is: " << firstName;
    } else {
        // 没有命令行参数时, fallback到键盘输入
        std::string firstName;
        std::cout << "请输入你的名字:";
        std::cin >> firstName;
        std::cout << "Your name is: " << firstName;
    }
    return 0;
}

补充说明:

  • argc 至少为1,因为argv[0]默认存储的是程序自身的执行路径。
  • 如果你设置了多个命令行参数,会依次存放在argv[1]、argv[2]……里,argc的数值也会对应增加。

内容的提问来源于stack exchange,提问作者penstiaGarse

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 07:45:48