代码小工具,c++,读文件工具,按照行读文件,将文件中内容读到内存中存放到map<int, string>容器中
一、使用场景:
0、从某个文件中读取非常多的数据,并需要写入到另一个有格式要求的文件中,使用这个函数工具可以很方便的从文件中读出数据,然后可以按照自己想要的格式输出到客户端终端上,实现“格式化数据的自动生成”,然后将生成好的数据复制粘贴到目标文件。
例如:
1、将txt文件中的大量数据适配到xml文件中。
2、将Excel表格中的大量数据适配到xml或其他文件中。
二、使用注意:
1、源文件中的内容需要复制粘贴到txt文本文件中,因为txt文件的格式是最简单的,并且几乎可以从任何文本文件中复制数据,并自动去除了其他文件中花里胡哨的编码格式,这个过程起到了“清楚格式,保留数据”的作用。
2、提供的数据转移到txt文件中以后,注意确保文件的最后一行的最后一个字符后面加一个回车,使得每一行的内容都保持以回车符结束的格式。
就是保证每个被读取的文本文件,必须是光标在最后一行内容的下一行的首位,否则运行出现内存错误,程序卡死,例子如图:
正确的文件结尾:
会引发读取奔溃的文件结尾:
三、按行读取文件工具的使用手册:
0、目标文件需要提供路径
一定注意光标在最后一行内容的下一行。
1、读文件函数接口为void ReadFile(string& filename, map<int, string>& datamap),入参为文件路径和用来承载数据的容器
2、使用map<int, string>容器方便使用索引统一管理
3、不使用vector或者string的原因是避免文件中内容过多导致容器自动扩容
4、读取好的文件内容会被存储在map<int, string>容器中,从第一行开始到最后一行,每一行会分配一个索引值,索引从0开始,0-第一行,n-1对应第n行。
5、这个工具的作用止于将数据从文件读取到内存,正常作用是传入一个空map<int,string>数据容器,函数运行完以后该容器中存好了文件中的数据,
6、每个string的长度等于文件中对应行的字符量,注意中文占两位字符,在调试时可以看到存放中文的位置是问号,但查看string整体数据时则可以看到正常中文。
7、通过string自带的迭代器和下标可以对数据内容进行自定义,例如写接口进行定点修改或判定是没问题的,
8、通过与string一一对应的索引值in