C++ I/O操作

------------------------------------------------------------------------------

#include <iostream>
#include <fstream>
#include <istream>
#include <string>
using namespace std;

//ifstream & open_file(ifstream &in,const string &file){
//这里都是引用传递,区别于值传递,引用传递一方面快捷方便,没有进行值的备份,另一方面,可以保证
//同时修改,对值传递来说,形参变化了,并不会引起实参的改变。而引用则可以。对于不想让改变的引用
//说,通过加const就可以保证不被改变。
// 

   in.close();
//    in.clear();
//    in.open(file.c_str());
//    return in;
//}
void main(){

    ifstream infile;
    infile.open("c://Readme.txt",ios::in);
    if(!infile)
        cout<<"can't open the file"<<endl;
    fstream outfile;
    outfile.open("c://1.txt",ios::out|ios::in);//模式是文件的属性而不是流的属性
    string str_in;
    while(getline(infile,str_in))
    
        outfile<<str_in<<endl;
    infile.close();
   
    outfile.seekg(0,ios::beg);//这个很重要哦,时刻判断文件指针的位置,或者说先关闭,再打开,哈哈又跑到开头来了
//    outfile.close();
//    outfile.open("c://1.txt",ios::out|ios::in);//模式是文件的属性而不是流的属性
   // while(getline(outfile,str_in))
    while(outfile.getline(str_in.begin(),100,'/n'))
   
        cout<<str_in.c_str()<<endl;//打印出来内容为空,为什么?原来是上面的outfile的文件读写指//针到了文件末尾,需要将指针重新定位到文件头

   
    outfile.close();

}
//总结:由于历史原因,I/O标准库仍然使用c语言风格的字符串而不是c++里面的string,所以要进行str.c_str()的转换。
//I/O操作中最重要的有3类,iostream也就是设备的输出输出,cin>>,cout<<,fstream(ifstream,ofstream),也就是对文件操作的。
//对ifstream来说最重要的莫过于getline了。文件操作类似设备操作也可以ifstream_obj>>,orstream_obj<<.
//上面说的是c++里面的,对于c里面的I/O来说,比较重要的是sprintf,格式化输出,与atoi()相反,经常//用来将数字转换为字符串。我刚才还想既然有itoa,为啥还要有sprintf,现在想想数字非整形一种。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值