阅读与fstream的二进制文件 [英] Reading binary file with 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屋!