gpt4 book ai didi

c++ - 将命令行的输出逐行读取到 C++ 中的字符串 vector 中

转载 作者:太空狗 更新时间:2023-10-29 12:35:51 27 4
gpt4 key购买 nike

我需要将 bash 命令的输出逐行读取到字符串 vector 中。我用 ifstream 尝试了这段代码,但它给出了错误。我必须使用什么来解析它们而不是 ifstream?

using namespace std;

int main()
{
vector<string> text_file;
string cmd = "ls";

FILE* stream=popen(cmd.c_str(), "r");
ifstream ifs( stream );

string temp;
while(getline(ifs, temp))
text_file.push_back(temp);
for (int i=0; i<text_file.size(); i++)
cout<<text_file[i]<<endl;
}

最佳答案

您不能将 C I/O 与 C++ iostream 工具一起使用。如果你真的想使用 popen,你需要使用 read 访问它的结果。 .

如果 ls 真的是你想做的,给 Boost.Filesystem一试。

#include <boost/filesystem.hpp>
#include <vector>

int main()
{
namespace bfs = boost::filesystem;
bfs::directory_iterator it{bfs::path{"/tmp"}};
for(bfs::directory_iterator it{bfs::path{"/tmp"}}; it != bfs::directory_iterator{}; ++it) {
std::cout << *it << std::endl;
}

return 0;
}

关于c++ - 将命令行的输出逐行读取到 C++ 中的字符串 vector 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12005481/

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