gpt4 book ai didi

c++ - 将文件内容重定向为可执行文件linux的标准输入

转载 作者:太空宇宙 更新时间:2023-11-04 04:05:06 25 4
gpt4 key购买 nike

所以我在 SSH shell 中遇到问题。我有一个 proj1.cpp 文件,它将标准输入中的文本读入名为“word”的字符串中。然后,我使用 makefile 将其编译为可执行文件 (proj1.x)。然后在 SSH shell 中,我执行类似“proj1.x < test0”的命令,它将文件“test0”的内容重定向到“proj1.x”的标准输入(基本上,将 test0 中的文本放入程序字符串“word”中)。它工作正常,但似乎在读完大约 30 个字符后就中断了。然而,当我简单地使用代码块或其他内容运行“proj1.cpp”时,一切正常(对于我输入的文本行,无论其大小是什么),所以我不知道问题是什么。

我在想问题可能是我正在使用“getline(cin, word);”它从标准输入读取 1 行文本到名为“word”的字符串,但我重定向的文件的某些内容有几行。我将使用什么代码来从标准输入读取所有文本(我猜直到程序终止?)因此,当我将文件重定向到标准输入时,它会读取所有内容并将其上传到字符串“word”。也许是一个 while 循环?或者,如果您认为这是其他问题,请发表评论。

我现在使用的是:

string word;
getline(cin, word);

我的生成文件:

proj1.x: proj1.cpp
$(CXX) -o $@ $<

clean:
rm -f *.o *.x core.*

最佳答案

要收集所有内容,您可以使用 while 循环或其他一些变体,例如 for 循环:

std::string content;

for (std::string line; std::getline(std::cin, line); )
{
content += line;
}

关于c++ - 将文件内容重定向为可执行文件linux的标准输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21518495/

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