2012-05-24 4 views
0

어떻게해야합니까? Visual Studio 2010 C++을 사용하고 있습니다.Ifstream char 배열로

char * Buffer = new char[Filesize]; 
//Fill it with data here 

std::ifstream BinaryParse(Buffer, std::ios::binary); 
if(BinaryParse.is_open()) 
{ 
    BinaryParse.read((char*)&Count, sizeof(unsigned int)); 
} 

그래도 작동하지 않습니다. ifstream을 문자 배열에서 읽는 것을 제외하고 파일을 읽는 것과 같은 방식으로 작동하게하려면 어떻게해야합니까?

답변

1

입력 스트림으로 C++ 문자열을 사용하는 istringstream을 시도해 볼 수 있습니다. 당신은 여기에 또 다른 예를 찾을 수 있습니다

// using istringstream constructors. 
#include <iostream> 
#include <sstream> 
#include <string> 
using namespace std; 

int main() { 
    int n,val; 
    string stringvalues; 

    stringvalues = "125 320 512 750 333"; 
    istringstream iss (stringvalues,istringstream::in); 

    for (n=0; n<5; n++) { 
    iss >> val; 
    cout << val*2 << endl; 
    } 

    return 0; 
} 

: http://www.fredosaurus.com/notes-cpp/strings/stringstream-example.html 여기

C++ reference에서 예입니다.

+0

하지만 어떻게 std :: strings와 stuff로 읽을 수 있습니까? – Kachinsky

+0

std :: string에는 char * 인수가있는 생성자가 있습니다.이 생성자를 사용하면 버퍼를 std :: string으로 변환 할 수 있습니다. [this] (http://www.cplusplus.com/reference/string/string/string/)을 참조하십시오. – Yang

+0

내가 할 때 의미 >> val (val == std :: string의 경우) – Kachinsky

관련 문제