当前位置: 首页 > news >正文

C++ (六) 输入输出和文件操作:C++的魔法书卷

输入输出和文件操作:C++的魔法书卷

在C++的魔法世界中,输入输出(I/O)和文件操作就像是古老的书卷,记录着信息的流动和存储。这些书卷不仅能够让你与用户进行交流,还能让你在程序之间传递信息。现在,让我们打开这些神秘的书卷,学习如何使用它们来增强我们的魔法力量。

5. 输入输出和文件操作:掌握信息的魔法

5.1 标准输入输出流:与用户对话的魔镜

在C++中,标准输入输出流(cincoutcerr)是与用户进行交互的直接方式。它们就像是一面魔镜,让你能够看到用户的想法(输入)并回应他们(输出)。

5.1.1 cout:向用户展示魔法

cout是标准输出流,用于向用户展示信息。

#include <iostream>int main() {std::cout << "欢迎来到C++的魔法世界!" << std::endl;int number;std::cout << "请输入一个数字:";std::cin >> number; // 从魔镜中读取用户的想法std::cout << "你输入的数字是:" << number << std::endl;return 0;
}

在这个例子中,我们使用cout来向用户展示信息,并使用cin来读取用户输入的数字。

5.1.2 cerr:警告和错误

cerr是标准错误流,用于向用户显示错误和警告信息。

#include <iostream>int main() {std::cout << "请输入一个数字:";int number;while (!(std::cin >> number)) { // 检查输入是否为数字std::cerr << "错误:请输入有效的数字。" << std::endl;std::cin.clear(); // 清除错误标志std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); // 忽略错误输入}std::cout << "你输入的数字是:" << number << std::endl;return 0;
}

在这个例子中,如果用户输入的不是数字,我们使用cerr来显示错误信息。

5.2 文件流:在魔法书卷中记录知识

文件流是C++中用于读写文件的工具。它们允许你将信息保存到磁盘上,或从磁盘上读取信息。

5.2.1 fstream:读写文件的魔杖

fstream类是用于文件输入输出的魔杖。

#include <iostream>
#include <fstream>
#include <string>int main() {std::fstream file("magic_log.txt", std::ios::in | std::ios::out | std::ios::app); // 打开文件if (file.is_open()) {std::string spell;while (getline(file, spell)) { // 从文件中读取信息std::cout << spell << std::endl;}file.seekp(0, std::ios::end); // 移动到文件末尾file << "新的魔法咒语:Abracadabra" << std::endl; // 向文件中写入信息file.close(); // 关闭文件} else {std::cerr << "无法打开魔法书卷!" << std::endl;}return 0;
}

在这个例子中,我们使用fstream来打开一个名为magic_log.txt的文件,读取其中的内容,并添加新的信息。

5.2.2 ifstreamofstream:专业的魔法书卷守卫

ifstreamofstream是专门用于文件输入和输出的守卫。

#include <iostream>
#include <fstream>
#include <vector>int main() {std::ifstream inputFile("magic_ingredients.txt"); // 用于读取的守卫if (inputFile.is_open()) {std::vector<std::string> ingredients;std::string ingredient;while (getline(inputFile, ingredient)) {ingredients.push_back(ingredient);}inputFile.close();} else {std::cerr << "无法打开魔法成分书卷!" << std::endl;return 1;}std::ofstream outputFile("magic_recipes.txt", std::ios::app); // 用于写入的守卫if (outputFile.is_open()) {for (const auto& ingredient : ingredients) {outputFile << ingredient << std::endl;}outputFile.close();} else {std::cerr << "无法打开魔法食谱书卷!" << std::endl;return 1;}return 0;
}

在这个例子中,我们使用ifstream来读取一个包含魔法成分的文件,并使用ofstream将这些成分写入另一个文件。

结语

输入输出和文件操作是C++中用于信息交换的基本工具。通过标准输入输出流,你可以与用户进行交互;通过文件流,你可以在程序和永久存储之间传递信息。这些工具就像是魔法书卷,记录着知识的流动和保存。

现在,拿起你的魔杖(键盘),继续在C++的魔法世界中书写和阅读吧!愿你的信息流动如同魔法一般流畅,愿你在编程的征途上充满交流和记录!


http://www.mrgr.cn/news/58766.html

相关文章:

  • 【Docker】安装、镜像、容器
  • vscode 功能、设置备忘
  • k8s 1.28.2 集群部署 NFS server 和 NFS Subdir External Provisioner
  • 【3D】几何算法合集2(自用资源)方便cv
  • 使用AutoDL训练YOLO等计算机视觉网络模型(AutoDL+Xftp+VS Code),附详细操作步骤
  • Linux系统块存储子系统分析记录
  • 【74LS138+74LS48组成模拟拔河+数码管显示】2022-5-29
  • SQLI LABS | Less-10 GET-Blind-Time based-double quotes
  • DOSBox汇编编译准备工作及初步编译
  • snmptranslate样例
  • Python流程控制专题:循环与else
  • 瞬间升级!电子文档华丽变身在线题库,效率翻倍✨
  • bug-JavaArrays.fill()隐藏问题
  • Golang | Leetcode Golang题解之第508题出现次数最多的子树元素和
  • 同时支持10m 100m 1000m的phy设备驱动
  • Java进阶篇设计模式之一 ----- 单例模式
  • 【必收藏】史上最全AI工具大盘点!一篇搞定所有需求
  • 经常聊架构模式,设计模式,编程模式,也谈谈“反模式”
  • Python游戏开发超详细第二课/一个小游戏等制作过程(入门级篇共2节)
  • 雷赛DMC5X10系列控制卡——机械原点和工作原点原理
  • 数学证明相关的矩分析。
  • 查缺补漏----CPU,主存数据传送
  • masm 6.15下载及DOSBox自动挂载
  • redo log 日志 与 undo log 日志工作原理
  • 【 IC每日一题】
  • 数据结构------手撕顺序表