gpt4 book ai didi

c++ - 将输入值从 bash 脚本传递到 C++ 可执行文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:19:12 29 4
gpt4 key购买 nike

我有一个需要输入值的 C++ 代码。我想要一个 bash 脚本来自动运行我的 c++ 可执行文件。我的 bash 脚本如下:

#!/bin/bash
g++ freshness.cpp -g -o prob
for((i=0;i<30;i++))
{
./prob<$2 ../../data/new_r.txt ../../data/new_p.txt ../../data /t_$1.txt >> result.txt
}
./cal result.txt
rm result.txt

我的main.cpp如下:

int main(int argc,char*argv[])
{
map<int, struct Router> nodes;
cout<<"creating routers..."<<endl;
Create_router(argv[1],nodes);
cout<<"creating topology..."<<endl;
LoadRouting(argv[2],nodes);
cout<<"simulating..."<<endl;
Simulate(argv[3],nodes);
return 0;
}

Create_router(argv[1],nodes)中有一个cin,比如cin>>r_size

非常感谢。

最佳答案

./prob < $2

表示将程序的输入重定向到$2变量中的文件。

如果 $2 是实际输入数据,而不是文件名,那么您应该使用此处字符串:

./prob <<< "$2" ../../data/new_r.txt ../../data/new_p.txt ../../data  /t_$1.txt  >> result.txt

或此处文档:

./prob <EOF ../../data/new_r.txt ../../data/new_p.txt ../../data  /t_$1.txt  >> result.txt
$2
EOF

或通过管道将输入传递给程序:

printf "%s\n" "$2" | ./prob ../../data/new_r.txt ../../data/new_p.txt ../../data  /t_$1.txt  >> result.txt

here-string 方法是最简单的,但它是一个bash 扩展。其他方法可移植到所有 POSIX shell。

关于c++ - 将输入值从 bash 脚本传递到 C++ 可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46123042/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com