저는 오늘 저녁에 매우 간단한 I/O 기능을 사용하려고 악몽을 꾸고있었습니다. 난처하게 여기는 사람들로부터 큰 도움을 받았습니다!ifstream.open() 파일을 열지 않음
현재 문제는 ifstream.open()을 사용하려고하는데 파일을 열지 않고 있다는 것입니다. 이것은 getline (ifstream, line)에 의해 확인됩니다. 첫 번째 호출에서 false를 반환합니다. 여기
는 현재 코드의 복사 붙여 넣기입니다 :std::string FSXController::readLine(int offset, FileLookupFlag flag)
{
// Storage Buffer
string line;
streampos sPos(offset);
try
{
// Init stream
if (!m_ifs.is_open())
m_ifs.open("C:\\Users\\guyth\\Documents\\test.txt", fstream::in);
}
catch (int errorCode)
{
showException(errorCode);
return "";
}
// Set stream to read input line
m_ifs.seekg(sPos);
if (!getline(m_ifs, line))
return "";
// Close stream if no multiple selection required
if (flag == FileLookupFlag::single)
m_ifs.close();
return line;
}
이 코드는 '버그 수정 모드'에 그렇게 때문에 꽤 지저분는, 그것에 대해 너무 많이 걱정하지 마십시오, 정리 때 발생합니다 이 방법은 마침내 효과가 있습니다.
이 나는 시도했다 :
- 절대 파일 경로
- 가 문자열로 경로를 저장하고 .c_str() 메서드를 호출. 파일을 보장 관리자 모드
- 에서 VS 2015를 실행
- 는/라이트에게 접근
- 중복 파일 확장자
- 예 파일이 확실히 내용이 없는지 확인을 읽기! : D
저는 지금 아이디어가 좀 모자라서 왜이 파일이로드를 거부하는지 잘 모르겠습니다.
조건 : 그냥 바로 오픈 후 m_ifs.fail()
을 확인 시도하고 그것은 사실 반환, 그래서 우리는 실패 플래그가 트리거 된 알 : 반복 사실 ... :(
편집을 반환 if (!getline(m_ifs, line))
/
감사
가이
왜 여기에있는 사람들로부터 큰 도움을 받았다고 당황 스럽습니까? :) :) –
왜 다른 Q에서 내 대답을 사용하지 않습니까? –
@RSahu - 일반적으로 사소한 일에 도움을 요청할 필요가 있음을 당황스럽게 생각했지만 도움 자체는 당황 스러웠습니다. –