怡清源企业网站建设可行性分析,wordpress個人網站域名,动漫网页制作源代码,友链是什么本文主要总结了C中对文本文件的基本操作以及使用心得#xff0c;第一部分中总结了C对文本文件的基本操作#xff0c;第二部分中会以csv文件为例#xff0c;进行读取存储由逗号分隔的字符串的操作。
1. 文本读取写入基础
要使用文件输入输出流#xff0c;首先需要include相…本文主要总结了C中对文本文件的基本操作以及使用心得第一部分中总结了C对文本文件的基本操作第二部分中会以csv文件为例进行读取存储由逗号分隔的字符串的操作。
1. 文本读取写入基础
要使用文件输入输出流首先需要include相关库 : iostream 以及fstream。istream类和ostream类分别是输入输出流类用于键盘与程序的输入以及程序向显示器的输出。其中istream和ostream分别有子类ifstream和ofstream。ifstream类用于文件对程序的输入(读取文件)而ofstream类用于程序对文件的输出(写入文件)。下面列举一个基本的文本读取写入的例子。
#include iostream
#include fstream
# include string
using namespace std;void test_fstream() {//ifstream if_file;//if_file.open(file1.txt, ios::in);ifstream if_file(file1.txt, ios::in);ofstream of_file(file2.txt, ios::app); // 使用append模式打开写入的字符会添加在文件的末尾string str_in;if (!if_file.is_open()) {cerr An error occurred when opening the file endl; return;}while (if_file.peek()!EOF){getline(if_file, str_in); //读取每一行字符串of_file str_in endl; //将字符串流入file2中cout str_in endl; }}int main()
{test_fstream();return 0;
}上述代码实现了将file1中的文字拷贝到file2中的操作。由于我们使用的append模式打开file2.txt因此会将新的字符添加到文件的末尾。 初始的file1.txt 和 file2.txt如下 : 程序运行一次后结果如下 :
2. csv文件的读取以及对读取数据的分类存储
在第一部分中我们主要列举了对txt文本文件的读取写入方法。那么针对csv文件或者类似的使用逗号分割字符串的文件在第二部分中我会分享一个常用的分类存储方式。 下面用一个简单的csv文件为例子 : 下面的C代码主要实现了分别读取由逗号分割的几部分的数据并存储在对应的变量中。
void test_csv()
{ifstream if_csv(test_csv.csv, ios::in);if (!if_csv.is_open()) {cerr An error occurred when opening the file endl;return;}string linestring;getline(if_csv, linestring); //第一行存储了每一列的类别我们跳过这一行while (if_csv.peek() ! EOF){getline(if_csv, linestring);uint64_t index_first_virgule linestring.find(, , 0); //找到第一个逗号的索引string country linestring.substr(0, index_first_virgule); //使用substr方法分割出需要的字符串uint64_t index_second_virgule linestring.find(,, index_first_virgule 1);string capital linestring.substr(index_first_virgule1, index_second_virgule- index_first_virgule-1);uint64_t index_third_virgule linestring.find(,, index_second_virgule 1);string population linestring.substr(index_second_virgule 1, index_third_virgule - index_second_virgule - 1);cout country : country capital : capital population : population endl;}
}代码运行结果如下 : 这个模式可以适用于所有标准的文本文件csv文件。分隔符号不一定必须是逗号可以是任何一致的符号使用这个模板可以快速地读取文件中每一行由逗号分隔的字符串对于处理excel表格等数据非常实用。