梨樹さんのプログラムをフルコピペするとWin16がどうこうみたいなよく分からないエラーになるので
勝手にこちらでDxLibを用いる方法にしました。また、入力形式にするのは面倒だったのでプログラム内で
勝手に文字列を宣言しました
#include "DxLib.h"
#include <iostream>
#include <string>
#include <fstream>
void write( const char* str, float f )
{
printf( "\n入力されたデータ\nstr:%s\nf :%f\n", str, f );
// ▼ ここから下に、str と f を保存するプログラムを書いてみてください。
// ※ C の標準関数のみ使い、fwrite は 1 度だけ使う事。
BYTE *binBuff = new BYTE[1024]; //← 本当は書きこむデータサイズをちゃんと確認して確保すべきです。
size_t StrLen = strlen(str);
size_t FSize = sizeof(f);
//memmove( binBuff, str, StrLen );・・・・・・・・・・・a1
//memmove( &binBuff[StrLen+1], &f, FSize );・・・a2
FILE *sf;
sf = fopen("data0.ESO","wb");
//fwrite( binBuff, sizeof(binBuff), 1, sf);・・・・・・a3
//fwrite(str,strlen(str),1,sf);・・・・・・・・・・・・・・・・・・b
//fwrite(&f,sizeof(f),1,sf);・・・・・・・・・・・・・・・・・・・・c
fclose(sf);
// ▲ ここまで
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
std::string str;
float f;
str = "くぁwせdrftgyふじこlp";
f=10.0f;
write( str.c_str(), f );
DxLib_End();
return 0;
}
結果、
コメントのbを有効にすると上段
コメントのcを有効にすると中段
コメントのa系列を有効にすると下段 となりました。aが間違っているんでしょうが、これ以上は分かりませんでした
また、a1とa3を有効にしても下段と同じになりました。