1.写入文件
https://blog.csdn.net/naibozhuan3744/article/details/78678571
//详情请看此链接
2.读取文件
知识点:
①要利用ifstream这个类,这个类里面有good(),getline()等函数,用的时候先要定义一个Ifstream类的成员,如ifstream ifile (“data.txt”)//定义了一个IFstream类成员 ifile, 指向的是data.txt这个文件 ,然后就可以直接用ifilie.good(),ifile.getline()
②ifstream.good()函数是用来读取判断文件里面是否还有内容即是否出错,有的话就返回1,没有的话就返回0;iftream.getline()函数是读文件中的数据,如ifile.getline(line,length);//第一个参数line是一个字符数组,第二个参数length是读取文件中每一行不超过的长度,这个函数的意思是,逐行读取Ifile文件里的数据,并存入到line这个字符数组中,每一行长度不超过length,遇到回车键结束
③puts()函数,puts()函数用来向标准输出设备(屏幕)输出字符串并换行,具体为:把字符串输出到标准输出设备,将’\0’转换为回车换行。其调用方式为,puts(s);其中s为字符串字符(字符串数组名或字符串指针)
④getline函数:成员函数getline()是从输入流中读取一行字符,读到终止符时会将’0’(即空白符)存入结果缓冲区中,作为输入的终止。终止符可以是默认的终止符,也可以是定义的终止符。函数的语法结构是:
getline(<字符数组chs>,<读取字符的个数n>,<终止符>)
在函数遇到和结束定界符相等的字符时函数结束,同时函数抽出定界符,此种情况下该定界符既不被放回输入流,也不被放入要生成的字符串。所以由此可以理解输入结束后的第一个回车是定界符,被确认后抛弃,而第二个才是程序执行运行时正常需要的。
应用。
④在fsream头文件下的getline 函数,如果直接利用,如getline(iflie,str)//第一个参数为自己定义的ifstream的类成员,第二个是一个字符串变量,意思就是将iflie成员指向的文件里面的数据逐行读入str字符串变量,遇到回车键的时候结束一次读取,当遇到空白符的时候结束读取。此时getline函数就直接把ifile里面的数据看成了一个字符数组,然后将字符串变量直接看成了限制读取字符的个数,所以可以直接这么用 源码 ①读取方式: 逐行读取, 将行读入字符数组, 行之间用回车换行区分 (1)提前设好一个静态的字符数组 (2)提前设好一个动态的字符数组 ②读取方式:读取方式: 逐行读取, 将行读入字符串, 行之间用回车换行区分 (1)while循环条件为读取数据 (2)while循环条件为判断文件是否还有数据 ③读取方式: 逐词读取,文本数据中词之间用空格区分,且如果换行了也可以读取到,然后把读到的词赋值给s,一直读到全部数据读完了就结束了。
string str;
ifstream ifile (“data.txt”);
getline(ifile,str);
cout<#include
//这个方法不推荐,因为动态数组很容易把堆和栈给破坏,因为delete的时候最后指针指向性不明,在VS会报错,在dev不会报错#include
#include
#include
#include