栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

树莓派-C++之流和文件

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

树莓派-C++之流和文件

2021SC@SDUSC

C++流是指信息从外部输入设备(如键盘)向计算机内部(如内存) 输入和从内存向外部输出设备(显示器)输出的过程。这种输入输出的过程 被形象的比喻为流。 在程序设计中,数据输入/输出(I/O)操作是必不可少的,C++语言的数据输入/输出操作是通过I/O流库来实现的。C++中把数据之间的传输操作称为流,流既可以表示数据从内存传送到某个载体或设备中,即输出流,也可以表示数据从某个载体或设备传送到内存缓冲区变量中,即输入流 C++输入输出包括三个方面的内容:
  • (设备)标准I/O流:内存与标准输入输出设备之间信息的传递;
  • (文件)文件I/O流:内存与外部文件之间信息的传递;
  • (内存)字符串I/O流:内存变量与表示字符串流的字符数组之间信息的传递

 为了实现数据的有效流动,C++系统提供了庞大的I/O类库,调用不同的类去实现不同的功能。由抽象基类ios直接派生出4个派生类,即istream,ostream,fstreambase和strstreambase。其中fstreambase是文件流类基类,由它再派生出ifstream,ofstream和fstream。strstreambase是字符串流类基类,由它再派生出lstrstream,ostrsCeam和swsWeam类。

对于标准I/O流, C++编译系统提供了用于输人输出的iostream类库。就例如,cout和cin并不是C++语言中提供的语句,它们是iostream类的对象,在未学习类和对象时,在不致引起误解的前提下,为叙述方便,把它们称为cout语句和cin语句。正如C++并未提供赋值语句,只提供赋值表达式,在赋值表达式后面加分号就成了C++的语句,为方便起见,我们习惯称之为赋值语句。

C++标准库提供了 4 个全局流对象 cin、cout、cerr、clog • cin : 标准输入 , 即数据通过键盘输入到程序中 • cout : 标准输出,即数据从内存流向控制台 ( 显示器 ) • cerr : 标准错误的输出 • clog : 日志的输出 cin 和 cout 是我们熟知的,也是最常用的。而 cout,cerr 和 clog 都是输出流。在早期, 他们是有所区别的, 在输出的优先级有所不同。显然,cerr 级别最高,程序一旦出错,报错一定是优先级最高的。但今天这三种输出的差别越来越小,他们都可以输出数据,不过我们还是习惯使用 cout 而已。 对于文件输入输出流,fstreambase是文件流类基类,由它再派生出ifstream,ofstream和fstream。
ofstream该数据类型表示输出文件流,用于创建文件并向文件写入信息。
ifstream该数据类型表示输入文件流,用于从文件读取信息。
fstream该数据类型通常表示文件流,且同时具有 ofstream 和 ifstream 两种功能,这意味着它可以创建文件,向文件写入信息,从文件读取信息。

打开文件:在从文件读取信息或者向文件写入信息之前,必须先打开文件。ofstream 和 fstream 对象都可以用来打开文件进行写操作,如果只需要打开文件进行读操作,则使用 ifstream 对象。open() 函数是 fstream、ifstream 和 ofstream 对象的一个成员

关闭文件:当 C++ 程序终止时,它会自动关闭刷新所有流,释放所有分配的内存,并关闭所有打开的文件。但程序员应该养成一个好习惯,在程序终止前关闭所有打开的文件。close() 函数是 fstream、ifstream 和 ofstream 对象的一个成员。

写入文件:在 C++ 编程中,我们使用流插入运算符( << )向文件写入信息,就像使用该运算符输出信息到屏幕上一样。唯一不同的是,在这里您使用的是 ofstream 或 fstream 对象,而不是 cout 对象。

读取文件:在 C++ 编程中,我们使用流提取运算符( >> )从文件读取信息,就像使用该运算符从键盘输入信息一样。唯一不同的是,在这里您使用的是 ifstream 或 fstream 对象,而不是 cin 对象。

#include 
#include 
using namespace std;
 
int main ()
{
    
   char data[100];
 
   // 以写模式打开文件
   ofstream outfile;
   outfile.open("afile.dat");
 
   cout << "Writing to the file" << endl;
   cout << "Enter your name: "; 
   cin.getline(data, 100);
 
   // 向文件写入用户输入的数据
   outfile << data << endl;
 
   cout << "Enter your age: "; 
   cin >> data;
   cin.ignore();
   
   // 再次向文件写入用户输入的数据
   outfile << data << endl;
 
   // 关闭打开的文件
   outfile.close();
 
   // 以读模式打开文件
   ifstream infile; 
   infile.open("afile.dat"); 
 
   cout << "Reading from the file" << endl; 
   infile >> data; 
 
   // 在屏幕上写入数据
   cout << data << endl;
   
   // 再次从文件读取数据,并显示它
   infile >> data; 
   cout << data << endl; 
 
   // 关闭打开的文件
   infile.close();
 
   return 0;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/628763.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号