先前学习c的时候写了一个学生管理系统,其中的文件操作让我蛋疼了很久,感觉都有阴影了....好不容易写好了,源文件却意外毁了
现在既然学c++了,就重新开始,直面自己。
c++文件操作(1)----以后肯定还有的
1)文件的打开
包含fstream头文件,要打开文件,必须先创建文件object , 可选择 fstream,ifstream,osftream,3种;
object.open() 打开文件;
fstream myFile;
myFile.open("C:\\Users\\用户名\\Desktop\\hh.txt");
注明:文件路径用反斜杠,并且转义;
++:和本地url完全不一样... eg: "file:///c:/Users/用户名/Desktop/hh.txt"
++:检测是否文件打开
if( myFile.is_open() ){
cout<<"成功"<<endl;
}
2) 文件的简单读取和写入
:读取
先来个例子:
string s;
myfile >> s;
cout << s << endl;
从s所指向的文件中读取第一个字符串给字符串 s ,遇到空格停止;输出字符串 s ;
这里有一个问题,为啥是"文件流>>字符串" 呢? 一开始我也很困惑,不是读出文件中的数据吗,怎么还用输入符号呢,后来一想,其实并不是读出,而是写入,为啥?
类比 cin>>s, 这是从键盘写入s,从流到字符串,而myFile>>s则类似,是从文件流中写入s,这两个操作的目的都是改变s的内容;
:写入
举个例子:
string s="中文成功了吗?";
p<<s;
成功了,哈哈哈哈哈......(我对文件编码不熟,记事本是用utf-8的么)
这里用的是 文件流<<字符串
即将字符串中的数据写入文件中;类比cout<<string,是将字符串中的数据写入流中打印到屏幕上;
3)文件的关闭
fileObject.close();
为什么要关闭文件?要是做做练习不关就算了,因为出错就停止了,文件损坏也没什么;
要是做项目的,程序崩溃而文件没关闭的话,就会。。。我也不知道会怎样。。。