bash 명령의 출력을 줄마다 벡터 벡터로 읽어야합니다. ifstream을 사용하여이 코드를 시도했지만 오류가 발생합니다. ifstream 대신 구문 분석에 사용해야하는 것은 무엇입니까?C++의 문자열 벡터에 한 줄씩 명령 출력을 읽습니다.
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를 사용하고 그 결과를'std :: string'으로 변환 할 필요가 있습니다. 당신이 정말로 ** 원하는 것은 부스트입니다. 파일 시스템. – pmr
@pmr Boost Filesystem은 파이프와 무슨 관련이 있습니까? –
"오류가 발생했습니다"는 아주 좋은 문제 설명이 아닙니다. 그것은 컴파일 타임 오류입니까? 런타임 오류? 특정 오류 메시지가 있습니까? 아니면 당신이 예상했던 것과 다른 행동을합니까? –