做自媒体的素材网站,网络架构拓扑图,无极任务平台,wordpress增加分类目录C标准IO流
使用cout进行标准输出#xff0c;即数据从内存流向控制台(显示器)使用cin进行标准输入#xff0c;即数据通过键盘输入到程序中使用cerr进行标准错误的输出使用clog进行日志的输出
C文件IO流
文件流对象
ofstream#xff1a;只写
ofstream 是 C 中用于输出文件…C标准IO流
使用cout进行标准输出即数据从内存流向控制台(显示器)使用cin进行标准输入即数据通过键盘输入到程序中使用cerr进行标准错误的输出使用clog进行日志的输出
C文件IO流
文件流对象
ofstream只写
ofstream 是 C 中用于输出文件操作的一个类它可以创建新文件用于写入或者向已存在的文件写入数据。ofstream 属于 fstream 头文件中定义的一部分是用于处理文件输出流的。
基本用法
1.包含头文件要使用 ofstream首先需要包含 fstream 头文件。 #include fstream2.创建对象然后创建一个 ofstream 类的对象并指定要操作的文件。 std::ofstream outFile(example.txt);上面的代码创建了一个 ofstream 对象名为 outFile并将其与名为 example.txt 的文件关联起来。如果文件不存在它会被创建。 3.写入文件使用 运算符向文件写入数据。 cpp outFile Hello, world! std::endl;4.关闭文件完成文件写入后应该关闭文件。虽然文件通常会在 ofstream 对象被销毁时自动关闭但显式关闭是一个好习惯。 outFile.close();高级特性 打开模式在打开文件时可以指定不同的模式比如std::ios::app 追加模式std::ios::binary 二进制模式等。 std::ofstream outFile(example.txt, std::ios::app);检查文件是否成功打开可以使用 .is_open() 方法来检查文件是否成功打开。 if (outFile.is_open()) {// 文件成功打开} else {// 打开文件失败}检查写入是否成功就像标准输出流一样可以检查 ofstream 对象的状态以确定数据是否成功写入。 if (outFile Hello, world!) {// 写入成功} else {// 写入失败}
ifstream:只读
ifstream 是 C 标准库中用于从文件读取数据的一个类是输入文件流类。它定义在 fstream 头文件中用于处理文件的读操作。
基本用法 1.包含头文件使用 ifstream 需要包含头文件 fstream。 #include fstream2.创建对象创建一个 ifstream 类的对象并与要读取的文件关联。 std::ifstream inFile(example.txt);如果文件 example.txt 存在inFile 会打开它以进行读取。 3.读取文件使用 运算符或 getline 函数从文件读取数据。 std::string data;while (inFile data) {// 处理 data}std::string line;while (std::getline(inFile, line)) {// 处理每行 line}4.关闭文件读取完文件后应该关闭文件。虽然文件通常会在 ifstream 对象被销毁时自动关闭但显式关闭是一个好习惯。 inFile.close();高级特性 打开模式在打开文件时也可以指定不同的模式如 std::ios::binary 二进制模式。 std::ifstream inFile(example.bin, std::ios::binary);检查文件是否打开成功使用 .is_open() 方法来检查文件是否成功打开。 if (inFile.is_open()) {// 文件成功打开} else {// 打开文件失败}检查读取状态可以检查 ifstream 对象的状态确定读取操作是否成功。 if (inFile data) {// 读取成功} else {// 读取失败或文件结束}
fstream:读写
fstream 是 C 中处理文件输入输出操作的一个类属于标准库中的 fstream 头文件。fstream 类综合了 ifstream输入文件流和 ofstream输出文件流的功能允许同时对文件进行读写操作。
基本用法 1.包含头文件首先要使用 fstream需要包括头文件 fstream。 #include fstream2.创建对象可以创建一个 fstream 类的对象并根据需要打开文件进行读取、写入或两者兼顾。 std::fstream file(example.txt);这会尝试打开 example.txt 文件。 3.指定模式打开文件在创建 fstream 对象时可以通过第二个参数指定文件打开的模式例如仅读、仅写、读写等。 std::fstream file(example.txt, std::ios::in | std::ios::out);上述代码中std::ios::in 指定了文件为读取模式std::ios::out 指定了文件为写入模式。 4.读写操作使用 fstream 对象你可以读写文件就像使用 ifstream 或 ofstream 一样。 // 写入file Hello, fstream! std::endl;// 读取std::string line;getline(file, line);5.关闭文件完成文件操作后应该关闭文件。虽然文件会在 fstream 对象被销毁时自动关闭但显式关闭文件是一个好习惯。 file.close();高级特性 打开文件的多种模式除了 std::ios::in 和 std::ios::out还有其他模式如 std::ios::app (追加模式)std::ios::binary二进制模式等可以根据需要进行组合。 检查文件是否打开成功使用 .is_open() 方法检查文件是否成功打开。 if (file.is_open()) {// 文件成功打开} else {// 打开文件失败}文件定位操作fstream 提供了 seekg 和 seekp 函数用于移动读取和写入位置指针实现随机访问文件内容。
文件的打开方式(成员函数open)
std::ios::in以输入读模式打开文件。std::ios::out以输出写模式打开文件。如果文件已存在其内容会被清空除非同时使用了std::ios::app。std::ios::binary以二进制模式打开文件而非文本模式。std::ios::ate打开文件并直接定位到文件末尾。std::ios::app追加模式。所有写入都会追加到文件末尾。std::ios::trunc如果文件已经存在先删除文件然后重新创建。
例
// 以只读模式打开文件
std::ifstream inFile;
inFile.open(example.txt, std::ios::in);// 以写模式打开文件如果文件存在则清空内容
std::ofstream outFile;
outFile.open(example.txt, std::ios::out);// 以读写模式打开文件如果文件不存在则创建
std::fstream ioFile;
ioFile.open(example.txt, std::ios::in | std::ios::out | std::ios::trunc);// 以二进制追加模式打开文件
std::ofstream appendFile;
appendFile.open(example.bin, std::ios::binary | std::ios::app); 文件读写操作
文件写入操作 1.使用插入运算符这是最常用的向文件写入数据的方法。它允许将数据项直接插入到输出文件流中。 std::ofstream outFile(example.txt);outFile Hello, world! std::endl;outFile 123 std::endl;2.使用成员函数write()对于二进制文件写入可以使用write()函数。此函数允许以二进制格式直接写入内存中的数据。 int data 123;outFile.write(reinterpret_castconst char*(data), sizeof(data));文件读取操作 3.使用提取运算符这是最常用的从文件读取数据的方法。它允许将数据从输入文件流中提取到变量中。 std::ifstream inFile(example.txt);std::string text;int number;inFile text number;4.使用成员函数getline()getline()用于从文件中读取一行通常用于读取文本文件。 std::string line;while (std::getline(inFile, line)) {// 处理每行数据}5.使用成员函数read()对于二进制文件读取可以使用read()函数。此函数允许直接读取二进制格式的数据到内存中。 int data;inFile.read(reinterpret_castchar*(data), sizeof(data));其他操作 检查文件末尾EOF使用成员函数eof()来检查是否读到文件末尾。 while (!inFile.eof()) {// 读取操作}检查读写状态使用成员函数good(), bad(), fail(), eof()来检查文件流的状态。 if (inFile.good()) {// 文件状态良好}位置定位操作使用seekg()对输入流和seekp()对输出流来定位文件中的位置使用tellg()和tellp()来获取当前位置。 inFile.seekg(0, std::ios::end); // 移动到文件末尾long fileSize inFile.tellg(); // 获取文件大小
stringstream
stringstream 是 C 标准库中 sstream 头文件提供的一个非常有用的类它允许字符串对象像流stream一样被操作。这意味着你可以使用类似于文件和控制台输入输出流的方式来处理字符串数据。stringstream 主要用于字符串的解析和格式化。
基础用法 1.包含头文件 #include sstream2.声明 stringstream 对象 std::stringstream ss;3.向流中写入数据可以使用流插入运算符 向 stringstream 对象中插入字符串或数值等数据。 ss Example 123 45.67;4.从流中读取数据可以使用流提取运算符 从 stringstream 对象中提取数据到变量中。 std::string str;int intValue;double doubleValue;ss str intValue doubleValue;5.访问 stringstream 的字符串可以使用 str() 成员函数获取流当前的字符串值或者将一个新的字符串值分配给流。 std::string currentString ss.str(); // 获取当前字符串ss.str(New string); // 分配新的字符串高级用途 数据解析当处理复杂格式的字符串时stringstream 可以非常便利地解析其中的不同部分到相应的变量中。 std::string data John Doe 30 175.5;std::stringstream parser(data);std::string firstName, lastName;int age;float height;parser firstName lastName age height;复杂格式化使用 stringstream 可以很容易地将多种类型的数据合并到一条字符串中并进行复杂的格式化。 std::stringstream formatter;formatter Name: firstName lastName , Age: age , Height: height;std::string result formatter.str(); 文章转载自: http://www.morning.ryjqh.cn.gov.cn.ryjqh.cn http://www.morning.gwdnl.cn.gov.cn.gwdnl.cn http://www.morning.qkdcb.cn.gov.cn.qkdcb.cn http://www.morning.ffdyy.cn.gov.cn.ffdyy.cn http://www.morning.nmkfy.cn.gov.cn.nmkfy.cn http://www.morning.hnhsym.cn.gov.cn.hnhsym.cn http://www.morning.qtbnm.cn.gov.cn.qtbnm.cn http://www.morning.zbnkt.cn.gov.cn.zbnkt.cn http://www.morning.thbqp.cn.gov.cn.thbqp.cn http://www.morning.smwlr.cn.gov.cn.smwlr.cn http://www.morning.srkzd.cn.gov.cn.srkzd.cn http://www.morning.lwrcg.cn.gov.cn.lwrcg.cn http://www.morning.nwynx.cn.gov.cn.nwynx.cn http://www.morning.qncqd.cn.gov.cn.qncqd.cn http://www.morning.qgfy.cn.gov.cn.qgfy.cn http://www.morning.rnqnp.cn.gov.cn.rnqnp.cn http://www.morning.gnjkn.cn.gov.cn.gnjkn.cn http://www.morning.nxtgb.cn.gov.cn.nxtgb.cn http://www.morning.qdbcd.cn.gov.cn.qdbcd.cn http://www.morning.mprky.cn.gov.cn.mprky.cn http://www.morning.sooong.com.gov.cn.sooong.com http://www.morning.hrzhg.cn.gov.cn.hrzhg.cn http://www.morning.qqbjt.cn.gov.cn.qqbjt.cn http://www.morning.tcfhs.cn.gov.cn.tcfhs.cn http://www.morning.zjcmr.cn.gov.cn.zjcmr.cn http://www.morning.fjshyc.com.gov.cn.fjshyc.com http://www.morning.fjkkx.cn.gov.cn.fjkkx.cn http://www.morning.kncrc.cn.gov.cn.kncrc.cn http://www.morning.zgnng.cn.gov.cn.zgnng.cn http://www.morning.mdfxn.cn.gov.cn.mdfxn.cn http://www.morning.cmdfh.cn.gov.cn.cmdfh.cn http://www.morning.rbgwj.cn.gov.cn.rbgwj.cn http://www.morning.mlntx.cn.gov.cn.mlntx.cn http://www.morning.jgnjl.cn.gov.cn.jgnjl.cn http://www.morning.hqnsf.cn.gov.cn.hqnsf.cn http://www.morning.qcsbs.cn.gov.cn.qcsbs.cn http://www.morning.srmpc.cn.gov.cn.srmpc.cn http://www.morning.mzhgf.cn.gov.cn.mzhgf.cn http://www.morning.pdmsj.cn.gov.cn.pdmsj.cn http://www.morning.myxps.cn.gov.cn.myxps.cn http://www.morning.qsctt.cn.gov.cn.qsctt.cn http://www.morning.mntxalcb.com.gov.cn.mntxalcb.com http://www.morning.wzknt.cn.gov.cn.wzknt.cn http://www.morning.qbccg.cn.gov.cn.qbccg.cn http://www.morning.elsemon.com.gov.cn.elsemon.com http://www.morning.tgxrm.cn.gov.cn.tgxrm.cn http://www.morning.nckjk.cn.gov.cn.nckjk.cn http://www.morning.wnjsp.cn.gov.cn.wnjsp.cn http://www.morning.wrdpj.cn.gov.cn.wrdpj.cn http://www.morning.rnyhx.cn.gov.cn.rnyhx.cn http://www.morning.rpjyl.cn.gov.cn.rpjyl.cn http://www.morning.mynbc.cn.gov.cn.mynbc.cn http://www.morning.nhlyl.cn.gov.cn.nhlyl.cn http://www.morning.plkrl.cn.gov.cn.plkrl.cn http://www.morning.bzwxr.cn.gov.cn.bzwxr.cn http://www.morning.rzrbw.cn.gov.cn.rzrbw.cn http://www.morning.xzqzd.cn.gov.cn.xzqzd.cn http://www.morning.gkmwx.cn.gov.cn.gkmwx.cn http://www.morning.tkflb.cn.gov.cn.tkflb.cn http://www.morning.btqrz.cn.gov.cn.btqrz.cn http://www.morning.jrksk.cn.gov.cn.jrksk.cn http://www.morning.zrbpx.cn.gov.cn.zrbpx.cn http://www.morning.nbybb.cn.gov.cn.nbybb.cn http://www.morning.cwzzr.cn.gov.cn.cwzzr.cn http://www.morning.mpbgy.cn.gov.cn.mpbgy.cn http://www.morning.c7491.cn.gov.cn.c7491.cn http://www.morning.rsxw.cn.gov.cn.rsxw.cn http://www.morning.brfxt.cn.gov.cn.brfxt.cn http://www.morning.lcxzg.cn.gov.cn.lcxzg.cn http://www.morning.rbzd.cn.gov.cn.rbzd.cn http://www.morning.kggxj.cn.gov.cn.kggxj.cn http://www.morning.pyncx.cn.gov.cn.pyncx.cn http://www.morning.rmppf.cn.gov.cn.rmppf.cn http://www.morning.hbxnb.cn.gov.cn.hbxnb.cn http://www.morning.xwlmr.cn.gov.cn.xwlmr.cn http://www.morning.jzfxk.cn.gov.cn.jzfxk.cn http://www.morning.tlpgp.cn.gov.cn.tlpgp.cn http://www.morning.kqyyq.cn.gov.cn.kqyyq.cn http://www.morning.qwmpn.cn.gov.cn.qwmpn.cn http://www.morning.kndyz.cn.gov.cn.kndyz.cn