如何在C ++中使用文件名获取变量(如$ 1,bash中的$ 2)

时间:2014-06-26 23:43:57

标签: c++ bash

在终端中运行bash脚本$ 1将代表程序后输入的值。

示例:typed(bash脚本)

#!/bin/bash
echo "You typed: " $1

当你输入" ./输入某些东西"在一个终端,你会得到"你打字:某事"回来。

我想知道怎么做" ./ a.out test"并测试std :: string userinput

的值

我的代码:

#include <iostream>
std:string userinput;
int main() {
    std::cout << "You typed: " << userinput << "\n";
    return 0;
}

3 个答案:

答案 0 :(得分:3)

是的,argv[1]

#include <iostream>
int main(int argc, char *argv[])
{
    std::cout << "You typed: " << argv[1] << "\n";
    return 0;
}

答案 1 :(得分:3)

声明主函数时,请按如下方式声明:

int main(int argc, char* argv[]) {
    // your code here
}

这些是在程序运行时传递给程序的参数。 Argc是参数计数,是传递给程序的参数数量(包括可执行文件)。然后argv是一个包含提供给程序的参数的数组。

例如:

./myprogram.out file1.txt file2.txt
argv[0] = "./myprogram.out"
argv[1] = "file1.txt"
argv[2] = "file2.txt"

答案 2 :(得分:2)

#include <iostream>
int main(int argc, char* argv[])
{
    if (argc > 1) {
        std::cout << "You typed: " << argv[1] << std::endl;
    }
    return 0;
}

如果您想要更复杂的控制,请尝试使用boost :: program_options