여러 개의 파일 이름, 공백 actions
라는 문자열을 가지고 있고, 라인은 다음과 같이 그 파일 이름 사이 나누기 :Ifstream 세그먼트 오류
File1 File2 File3 File4
File5 File6 File7 File8
내가 하나 하나 파일을 열려면, 그래서 내가 문자열을 공백으로 분리하여 파일 이름을 개별적으로 가져옵니다.
std::stringstream ss(actions);
std::string newline;
while(std::getline(ss, newline, '\n')){
std::stringstream s1(newline);
std::string espacos;
std::getline(s1,espacos,' ');
char* file = &espacos[0u];
cout << file << '\n';
ifstream ficheiro;
ficheiro.open(file);
....
}
여기가 내가 갈라진다.
문자열 espacos
은 파일 이름을 하나씩 가져 와서 줄 바꿈을 반복합니다.
나는 에서 char*
으로 변환되지만 결국에는 세그먼트 오류가 발생합니다.
나는 디버거를 사용하고이 선이 분할 고장의 원인이되었다고 말했다 : 그래서
ficheiro.open(file);
내가 모든 확인 있는지 확인하기 위해 char* file
인쇄를, 나는이 출력 얻을 :
File1
File2
File3
File4
을
모든 것이 파일 이름에 맞고, 모든 파일을 열 수 있지만 File4
이지만이 오류의 원인은 무엇이라고 생각하십니까?
추 신 : 매 루프마다 파일을 닫습니다.
하십시오 ** [편집] ** A [mcve] 또는 [SSCCE (짧은, 콘도, 올바른 예)] (HTTP와 질문 : // sscce.org) – NathanOliver
해당 코드는 각 줄의 첫 번째 이름 만 가져옵니다. 중요한 결석이 있어야합니다. – molbdnilo
나는 모든 이름을 얻는 루프를 잊었다. –