#include <string>
#include <vector>
#include <map>
int _tmain(int argc, _TCHAR* argv[])
{
std::fstream File;
File.open("E:\\茂名石化错误码.txt");
std::vector<std::string> vecErrorCode;
std::map<std::string, int> mapErrStatistics;
while (!File.eof())
{
std::string strErrCode = "";
char szErrCode[256];
// 以下两种写法都可
//inFile.getline(szErrCode, 256, '\n');
std::getline(File, strErrCode);
vecErrorCode.push_back(strErrCode);
}
File.close();
// 保存统计信息
File.open("E:\\错误统计表.csv", std::ios::binary | std::ios::out);
for (auto itrMap:mapErrStatistics)
{
File << itrMap.first << ',' << itrMap.second << std::endl;
}
File.close();
return 0;
}
ios::app: //以追加的方式打开文件
ios::ate: //文件打开后定位到文件尾,ios:app就包含有此属性
ios::binary: //以二进制方式打开文件,缺省的方式是文本方式。两种方式的区别见前文
ios::in: //文件以输入方式打开(文件数据输入到内存)
ios::out: //文件以输出方式打开(内存数据输出到文件)
ios::nocreate: //不建立文件,所以文件不存在时打开失败
ios::noreplace://不覆盖文件,所以打开文件时如果文件存在失败
ios::trunc: //如果文件存在,把文件长度设为0