C++ 文件读写操作

1.练习背景:预定义几个字符串,保存到一个二进制文件(设为data1.dat)

2.操作要求:用二进制方式写入这些字符串,然后二进制的方法读出来,在console上面显示

以下是字符串

char line[5][20] = {
    "hello",
    "mingzhi",
    "you job is?",
    "coding",
    "I want to go there!!!"
}; 

 

将字符串读入到data1.dat文件中,有多种方式,这里只采用其中一种

char sign = '\n';
    fstream file;
    file.open("data1.dat",ios::out|ios::binary);
    
    for(int i=0;i<5;i++)
    {
        file.write((char*)line[i],strlen(line[i]));
        file.write((char*)(&sign),sizeof(sign)); //A
    }
    file.close();
View Code

A行要注意一点,写入二进制流时,如果没有A行,那该二进制文件则没有换行符号的,所以要添加这行。这一行的语法也要稍加注意:

write()函数里的第一个参数一定是char*类型的,所以添加的变量不是指针的话,一定要注明是取地址符表明(char*)(&val)是个变量。

//ifstream infile;
    file.open("data1.dat",ios::in|ios::binary);
    
    char ch[30];
    
    //file.unsetf(ios::skipws);
    //file.fill(' ');
    while(file.getline(ch,20))
    {
        cout << ch << endl;
    }
    file.close();
View Code

上面的代码就是读取了,没有啥好注意的,就是老写错了getline,get这些函数的参数,第二个参数是不缺省的。

 

posted on 2014-01-25 22:11  从此以后  阅读(300)  评论(0编辑  收藏  举报