回 帖 发 新 帖 刷新版面

主题:[讨论]c++read参数问题

c++中的 函数原型ostream & read(char *buf, streamsize num)的参数问题
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
int n[5]= {1,2,3,4,5};

ofstream ofile("test1.bin", ios::out | ios::binary);

if(! ofile)
{
cout << "Cannot open file.\n";
return 1;
}

[color=FF0000]ofile.write((char*)&n,sizeof(n));[/color]
ofile.close();

for(int i=0; i<=4; i++)
{
n[i] = 0;
}

ifstream ifile("test1.bin",ios::in | ios::binary);
if(! ifile)
{
cout << "Cannot open the file.\n" ;
return 1;
}

[color=FF0000]ifile.read((char*)&n,sizeof(n));[/color]

for (i=0; i<=4; i++)
{
cout << n[i];  
}
ifile.close();
return 0;
}
上述例子中的红色字体:ifile.read((char*)&n,sizeof(n))中的参数 (char*)&n代表的是缓冲区的首地址么? 可是n是个数组的首地址哦。恳请大哥么,帮帮小弟

回复列表 (共5个回复)

沙发

读一个二进制存储的int数据。

板凳

大哥,我好不理解(char*)&n这个代表的是很么含义。首先n是一个地址,&是引用。再加上个(char*),更不清楚代表啥意思了。恳请帮忙呢

3 楼

read(char* buff, int bufsize);
&n取n的地址;
(char*)强转为char*类型以便于调用函数。
明白了么:)

4 楼

原来函数原型要求一定要以参数为char,有所悟了

5 楼


非常感谢哦

我来回复

您尚未登录,请登录后再回复。点此登录或注册