私がしたいのは、文字列を const char* に変換することです。
理想的には、「const char* myConstChar = myString.c_str()」を使用できますが、以下の例が示すように; バイナリデータではうまく機能しません:
#include <iostream>
#include <fstream>
#include <stdio.h>
#include <string.h>
using namespace std;
int main(){
string myString; // This need to be string
ifstream infile;
const char* myConstChar; // This need to be const char*
infile.open("binary.bin");
if(infile){
while(getline(infile, myString)){
std::cout << "Data: " << myString << " string length: ";
std::cout << myString.length() << "\n";
myConstChar = myString.c_str();
std::cout << "const char Data: " << myConstChar;
std::cout << " const char length: "<< strlen(myConstChar) <<"\n";
}
}
infile.close();
return 0;
}
これは、「文字列の長さ: 13」と「const char の長さ: 3」を返します。
文字列をconst char*
使用してmyString.c_str()
!に変換すると、データが失われるようです。
バイナリ データを失うことなく文字列を const char* に変換するにはどうすればよいですか?!