阅读与fstream的二进制文件 [英] Reading binary file with fstream

查看:209
本文介绍了阅读与fstream的二进制文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我读与fstream的二进制文件,并存储字符数组的信息:

I am reading a binary file with fstream and storing the information in an array of characters:

int dataLength = 32;
int counter = 0;
char data[dataLength];
char PMTone[dataLength/4];
std::fstream *fs = new std::fstream(inputFileName,std::ios::in|std::ios::binary);
fs->read((char *)&data, dataLength);
//of the 32 characters in data[], I need first, 5th etc elements:
//fill first pmt info
for(int i=0; i<(dataLength/4); i++){
PMTone[i]=data[counter];
counter+=4;
}

现在我设置PMTone [7]是一个作为测试:

Now I'm setting PMTone[7] to be a as a test:

PMTone[7] = "a";

我得到的错误:

mdfTree.cpp:92:21:错误:从'为const char *'无效转换
  '字符'[-fpermissive]

mdfTree.cpp:92:21: error: invalid conversion from ‘const char*’ to ‘char’ [-fpermissive]

我不明白为什么在PMTone的元素[]是指向字符,当PMTone []被定义为字符数组。

I don't understand why the elements in PMTone[] are pointers to chars, when PMTone[] was defined as an array of chars.

当我把PMTone []作为一个指针数组字符:

When I do treat PMTone[] as an array of pointers to chars:

(*PMTone)[7] = "a";

我得到另一个错误,我不明白:

I get another error that I don't understand:

mdfTree.cpp:91:18:错误:无效的类型'的char [INT]'数组
  标

mdfTree.cpp:91:18: error: invalid types ‘char[int]’ for array subscript

这似乎意味着,编译器不会考虑PMTone []是一个数组可言,而只是一个字符指针。

This seems to imply that the compiler doesn't consider PMTone[] to be an array at all, but simply a pointer to char.

任何人都可以阐明这里发生了什么光?为什么PMTone []成为一个指针数组字符?

Can anyone shed light on what is happening here? Why has PMTone[] become an array of pointers to chars?

推荐答案

字面不是一个字符。

您需要:

PMTone[7] = 'a';

这篇关于阅读与fstream的二进制文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆