解決策は些細なことかもしれませんが、私はcppで鮮やかではありません。
コードを実行した後、の値はfunction strlen((char*)buffer)
私が思っているよりも高くなっています。何故ですか?どうすれば修正できますか?(if filesize=48, than strlen((char*)buffer)=64
そしてそれも48でなければなりません!)
ifstream iffile;
iffile.open(argv[1], ios::in | ios::binary | ios::ate);
if (iffile.is_open())
{
long filesize = iffile.tellg();
if (filesize > 0)
{
iffile.seekg(0, ios::beg);
{
long pos = iffile.tellg();
if (pos != filesize)
{
char *buffer;
buffer = (char *)malloc(filesize * sizeof * buffer);
if (buffer != NULL)
{
memset(buffer, 0, filesize - pos);
iffile.read((char *)buffer, filesize);
さらに、私のファイルには印刷できない値がたくさんあることに言及する必要があります。