2012-04-17 2 views
2

이 질문은 Loading a file into a vector과 매우 유사합니다. 그러나,이 경우, 그것을 서명되지 않은 문자 벡터로로드하고 싶습니다.파일을 벡터에로드하기 <부호없는 문자>

다른 질문의 코드를 사용하면 서명되지 않은 char 벡터를로드하는 가장 좋은 방법은 무엇입니까? 에 '서명 숯불 *'에서 무효 변환 '표준 : : basic_istream보다는 :: char_type의 *를 {일명 문자 *}'

std::vector<char> vec; // Would like this to be std::vector<unsigned char> vec; 
std::ifstream file; 
file.exceptions(
    std::ifstream::badbit 
    | std::ifstream::failbit 
    | std::ifstream::eofbit); 
file.open("test.txt"); 
file.seekg(0, std::ios::end); 
std::streampos length(file.tellg()); 
if (length) { 
    file.seekg(0, std::ios::beg); 
    vec.resize(static_cast<std::size_t>(length)); 
    file.read(&vec.front(), static_cast<std::size_t>(length)); 
} 

답변

6

변경 std::vector<char> vec;std::vector<unsigned char> vec;

+0

에 나는 그것을 다음과 같은 컴파일 오류를하고받을 때 –

+4

@MachoMatt read 함수 호출의 첫 번째 인수에 캐스트를 추가하십시오.'reinterpret_cast (& vec.front())' –

+0

@ benjamin-lindley의 코멘트에 동의합니다. 수락 된 대답과 주석이 모두 필요합니다. –

관련 문제