0
3 가지 유형이 포함 된 구조가 있으며이를 내 txt 파일에 쓰려고합니다. 결국 내가 내 파일을 열 때 나는 정보를 contatins하고 정수는 2 진 기호로 변환되는 chars를 얻는다. 나는 함수를 사용했다.ofstream을 사용하여 파일에 쓰기
sprintf_s(router, "%d" , route[i].route_number);
내 int를 char로 변환했다. 그리고이 모든 int가 변형 된 후에 나는 내 자리를 볼 수 있지만 chars 옆에 여전히 쓰레기가 있습니다. 여기 내 코드가있다. 내가 뭘 잘못하고있어?
ofstream file_not_binary("D:\\nobin.txt",ios::out);
char router[10];
for(int i=0;i<n;i++){
sprintf_s(router, "%d" , route[i].route_number);
file_not_binary.write((char*) &router,sizeof(router));
file_not_binary.write((char*) &route[i].destination ,sizeof(router));
file_not_binary.write((char*) &route[i].route_number, sizeof(router));
}
나는 이런 식으로 뭔가를 얻을 : 23 юююююююrivne НННН 키예프 Н394 ююююююrivne ННННЉ ээээ«« 내가 입력 : 23 리브 네의 키예프, 394 리브 네를.
포인터에 Ixnay가 심각하게 전송됩니다. 포인터 캐스트가 필요하다고 생각되면 틀렸거나 API가 손상된 것입니다. –
마지막 두 개의 sizeof (라우터)는 각각 sizeof (route [i] .destination) 및 sizeof (route [i] .route_number)이어야합니다. – 0x499602D2
null 터미네이터 뒤에 오는 'router'에서 정크 메일을 작성하기 때문에 쓰레기가 생깁니다. 이것은 나쁜 생각이지만 파일이 텍스트 모드에서 열려있을 때 특히 좋지 않습니다. –