将字符串从BASH脚本(C 程序)推入CIN
Pushing a string into cin from a bash script (C++ program)
这应该是一个简单的问题,但是我还没有找到引。
在我编写的程序中,我通过以下方式从用户那里获得了一条线。
std::string str;
std::getline(std::cin, str);
这是我在程序中获得的唯一输入。
我需要编写一个bash脚本来测试某些用户输入,但是我不确定如何将脚本中指定的字符串推向我的程序,以便我的程序像在命令行中输入那样的字符串。
脚本看起来像:
#!/bin/sh
echo "running test"
//somehow direct string specified here into my program
有人可以帮助我指向正确的方向吗?
使用外壳管道:
echo "some input" | ./myprogram
通常,当您运行./myprogram
时,其标准输入连接到TTY(终端(。
当您在外壳中使用管道时,它将程序的标准输入连接到上述程序的标准输出。
由于默认情况下echo
包括一个newline字符,您的程序将看到
some inputn
接着文件结束。
除了管道选项外,您还可以使用此处的文档:
./myprogram <<EOF-MARKER
some input
EOF-MARKER
请注意,您可以以这种方式发送多行(所有内容都达到文件末端标记字符串(。
如果您实际使用的是bash(不是一些brand-x壳(,则可以使用此处的弦(请注意三重<
而不是双重(:
./myprogram <<<"some input"
相关文章:
- C++,从文件读取到结构,然后读取到向量(结构被推入向量太多次,而不仅仅是一次)
- VS2008 SP1:将一对推入矢量时没有合适的默认构造函数可用
- 如何将字符串推入shared_ptr向量?
- 如何将控制台应用程序放入系统托盘通知C++?
- 弹出并推入堆栈
- 每次我将对象推入矢量时都会丢失数据
- 将用unique_ptr的对象推入C 中的向量
- 无法弄清楚如何让 CMake 为自定义 clang 驱动程序拉入正确的标头
- 将矢量<int>推入矢量<矢量<int>>时,SIGABRT - free():下一个大小无效(快速)
- 将字符串从BASH脚本(C 程序)推入CIN
- 将子类 Y 推入 std::stack (C++) 后无法使用子类 Y 的方法<ParentClass>
- 将std ::计数结果推入向量
- 为什么这个C++程序舍入双值而不打印整个字符串
- 使用指针将对象推入静态容器
- 将元素推入 std::queue 时避免复制
- 将_back推入哈希地图类中的向量
- 嵌套 2 用于推入向量的循环,尽量不重复push_back值
- 如何将字符串推入堆栈
- 当访问要推入并集向量的字符串的字符时,向量中的字符串会变得一团糟
- 如果我将堆栈上分配的元素的指针推入 std::vector,则其成员的值会发生变化