c++ - Shell 输入作为变量

标签 c++ input parameters

我目前有一个 c++ Linux 程序,它从文件中读取参数“P”并将其加载到 RAM 中以供进一步操作。该文件包含以下行:

P = 123

我希望程序从 shell 输入而不是文件中获取 P。我对所有选项持开放态度,只要我可以在 SSH 连接时手动输入 P。 我想到的是类似于输入提示的东西:

sudo myprogram start
enter P value : (I would manually enter "123" here)

或者可能是争论:

sudo myprogram start 123

做起来一定很简单,但我不知道怎么做,所以非常感谢任何帮助!

最佳答案

如果这是文件仅有的数据,那么文件操作是不必要的。 只需将 123(或其他)传递给您的 C++ 程序并将字符串转换为整数。

假设您将整数作为第二个参数传递:

int  p = atoi(argv[2]);

更好的选择是使用 strtol:

char *s, *ptr;

s = argv[1];
int p = strtol(s, &ptr, 10);

如果您无法更改 C++ 代码,则只需执行以下操作:

echo "P = 123" > file && myprogram start 

如果您的文件有更多内容而您不能简单地执行echo,则用新值替换现有行:

 sed -i "s/P = [0-9]*/P = 123/" file && myprogram start

关于c++ - Shell 输入作为变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13122344/

相关文章:

javascript - JS复制输入的值

events - Flutter BLoC-如何将参数传递给事件?

asp.net - 从 ASP.NET 页面获取请求变量

c - 在 C 中提示用户输入整数 2> 和 >9

c++ - 如何用 C++ 制作 Yahoo 10 IM 自动回复程序?

c++ - gcc优化标志-O3使代码慢于-O2

C - If (No File Found) { 使用标准输入 }

python - 多项式作为 Python 中的输入

c++ - 数组如何与条件运算符一起使用?

c++ - 为什么常量变量有时不被视为编译时常量