C++文件操作
创建txt文件并写入数据
创建cpp
首先我们新建一个cpp文件,test_txt.cpp,然后使用vscode打开。
代码内容
需要添加头文件
#include <iostream>
#include <fstream>
创建一个test文本文件
std::ofstream outfile("test.txt");//创建一个输出流对象outfile
outfile << 1<< " 0 0\n"; // 写入 数据并换行(写入的内容包括换行)
outfile << 2<< " 0 0\n";
outfile << 3<< " 0 0\n";
// 关闭文件
outfile.close();
完成之后要正常关闭文件,如果程序异常退出会出现没有正常存储进去数据的现象原因是数据还在缓存区没有被写进文件里面
运行代码
点击左侧的三角将进行代码的运行,在我们的cpp同级目录下面会出现一个test_txt.exe 这个文件夹是运行完程序之后生成的二进制可执行文件,还有一个test.txt就是我们使用代码生成的txt文本文件打开可以看到我们在代码里面写入的三行文件
这样就可以成功将数据记录下来了
打开文本文件并读取
我们新建一个cpp read.cpp用来读取这个文本文件
添加头文件
#include <iostream>
#include <fstream>
#include <sstream>
和创建文件的时候一样,我们需要创建一个输入流对象outfile然后对这个对象进行操作。
代码
代码如下
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
#include <sstream>
int main()
{
std::ifstream infile("test.txt");//采用便准输入流方式打开“test.txt"文件,infile是给这个文件流对象起的名字,可以对这个对象进行操作。
if (infile.is_open())
{
std::cout << "文件成功打开!\n";
// 在这里可以继续处理文件内容
}
else
{
std::cout << "无法打开文件!\n";//对于打开文件的异常处理
}
//打开文件和异常处理
double a1,b1,c1;
double a2,b2,c2;
for(int i = 0;i<3;i++)
{
std::string line;
getline(infile, line);//一次读取一行内容并即将这行内容存储在string类型对象line中
std::istringstream iss(line);
double a,b,c;
if (iss >> a >> b >> c)
{
std::cout<<"line: "<<line[0]<<" "<<line[1]<<" "<<line[2]<<std::endl;//整行内容打印
std::cout<<a<<" "<<b<<" "<<c<<std::endl;//单独打印单独字符
}
else
{
std::cout<<"erro!"<<std::endl;
}
};
return 0;
}
结果
运行完之后可以看到终端输出如下
这样就完成了一个简单的txt文件读写功能。