从0开始学习C++ 第二课:C++中的输入和输出(I/O)

第二课:C++中的输入和输出(I/O)

学习目标:

  • 理解C++中的输入输出流的概念及其工作原理。
  • 学习如何使用iostream库中的cincout对象进行基本的输入输出操作。
  • 掌握格式化输出的方法,包括如何设置宽度、填充和精度。
  • 学习如何从文件读取数据以及向文件写入数据。

学习内容:

  1. 输入输出流简介:

    • 输入输出流提供了数据的输入和输出功能。在C++中,这通常通过iostream库实现,它包含了用于输入的cin对象,用于输出的cout对象,以及用于输出错误信息的cerrclog对象。
  2. 基本的输入输出:

    • 使用cin进行输入,cout进行输出。

    代码示例:

    #include <iostream>
    using namespace std;int main() {int number;cout << "Enter an integer: ";cin >> number;cout << "You entered: " << number << endl;return 0;
    }
    

    预计输出效果:

    Enter an integer: 5
    You entered: 5
    
  3. 格式化输出:

    • 使用iomanip库中的函数如setw(设置宽度)、setfill(设置填充字符)和setprecision(设置小数点精度)进行输出格式控制。

    代码示例:

    #include <iostream>
    #include <iomanip>
    using namespace std;int main() {double pi = 3.14159265358979323846;cout << "Pi rounded to 3 decimal places: " << setprecision(3) << fixed << pi << endl;cout << "Pi with setw(10): " << setw(10) << pi << " end" << endl;cout << "Pi with setw(10) and setfill('*'): " << setfill('*') << setw(10) << pi << " end" << endl;return 0;
    }
    

    预计输出效果:

    Pi rounded to 3 decimal places: 3.142
    Pi with setw(10):    3.14159 end
    Pi with setw(10) and setfill('*'): ***3.14159 end
    
  4. 文件输入输出:

    • 使用fstream库的ifstream类进行文件读取和ofstream类进行文件写入。

    代码示例:

    #include <iostream>
    #include <fstream>
    using namespace std;int main() {// 写入文件ofstream outfile("example.txt");outfile << "This is an example text." << endl;outfile.close();// 读取文件ifstream infile("example.txt");string line;if (infile.is_open()) {while (getline(infile, line)) {cout << line << '\n';}infile.close();} else {cout << "Unable to open file";}return 0;
    }
    

    预计输出效果:

    This is an example text.
    

练习题:

编写一个程序,要求用户输入他们的全名和年龄。然后程序将这些信息格式化输出到一个文本文件中,例如:“Name: [FullName], Age: [Age]”。注意处理文件读写时的异常情况。

答案:

#include <iostream>
#include <fstream>
#include <string>
using namespace std;int main() {string full_name;int age;cout << "Enter your full name: ";getline(cin, full_name);cout << "Enter your age: ";cin >> age;ofstream outfile("user_info.txt");if (outfile.is_open()) {outfile << "Name: " << full_name << ", Age: " << age << endl;outfile.close();cout << "Information successfully saved to file." << endl;} else {cerr << "Unable to open file for writing." << endl;}return 0;
}

预计输出效果(示例):

Enter your full name: John Doe
Enter your age: 30
Information successfully saved to file.

在文件user_info.txt中,内容将是:

Name: John Doe, Age: 30

通过这一课,学生应该能够掌握基本的输入输出操作,了解如何格式化输出数据以及如何将数据读写到文件中。这些技能对于日常编程非常重要,因为它们是与用户或其他系统交换信息的基础。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/637953.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

响应式编程

Reactive-Stream Reactive Streams是JVM面向流的库的标准和规范 1、处理可能无限数量的元素 2、有序 3、在组件之间异步传递元素 4、强制性非阻塞,背压模式 在Java中,常用的背压机制是响应式流编程中的反压(Reactive Streams Backpressure)。反压是一种生产者-消费者模型,…

【刷题笔记4】

动态规划题目汇总 斐波那契数列&#xff1a;1&#xff0c;1&#xff0c;2&#xff0c;3&#xff0c;5&#xff0c;8&#xff0c;13…… 递归一把解决三类问题&#xff1a;1.数据定义是按照递归的&#xff08;斐波那契数列&#xff09;。2.问题解法是按递归算法实现的。 3.数据…

JUC-Java内存模型JMM

JMM概述 Java Meory Model java内存模型。在不同的硬件和不同的操作系统上&#xff0c;对内存的访问方式是不一样的。这就造成了同一套java代码运行在不同的操作系统上会出问题。JMM就屏蔽掉硬件和操作系统的差异&#xff0c;增加java代码的可移植性。这是一方面。 另一方面JM…

ios适配虚拟home键

在H5开发过程中遇到一个兼容性问题。iphone手机的虚拟home键会对屏幕底部的内容造成遮挡。要处理此问题&#xff0c;需要清楚安全区域这个概念。 安全区域 根据刘海和虚拟Home键&#xff0c;Apple为其设备提供了屏幕安全区域的视觉规范 竖屏&#xff1a;竖屏的时候&#xff…

UE5 C++学习笔记 常用宏的再次理解

1.随意创建一个类&#xff0c;他都有UCLASS()。GENERATED_BODY()这样的默认的宏。 UCLASS() 告知虚幻引擎生成类的反射数据。类必须派生自UObject. &#xff08;告诉引擎我是从远古大帝UObject中&#xff0c;继承而来&#xff0c;我们是一家人&#xff0c;只是我进化了其他功能…

基于asio的httpclient实现

基于Asio实现一个简易的httpclient Asio是C的一个高性能网络编程库&#xff0c;提供了跨平台的网络和底层I/O编程接口&#xff0c;包括tcp&#xff0c;udp等sockets通信&#xff0c;以及异步编程模型。它的设计目标是为C开发者提供一种简单、直接的方式来处理网络通信和并行I/…

矩阵和矩阵如何相乘?

矩阵与矩阵相乘遵循特定的数学规则。为了相乘&#xff0c;第一个矩阵的列数必须等于第二个矩阵的行数。矩阵乘法的结果是一个新矩阵&#xff0c;其行数等于第一个矩阵的行数&#xff0c;列数等于第二个矩阵的列数。矩阵乘法不满足交换律&#xff0c;即 AB≠BA。 例子&#xff…

131. 分割回文串 - 力扣(LeetCode)

问题描述 给你一个字符串 s&#xff0c;请你将 s 分割成一些子串&#xff0c;使每个子串都是 回文串 。返回 s 所有可能的分割方案。 回文串 是正着读和反着读都一样的字符串。 输入示例 s "aab"输出示例 [["a","a","b"],["…

esp32-c-简单应用笔记

目录 1、资料2、创建线程的LED闪烁3、创建线程的读取GPIO输入电平4、使用LEDC实现简单呼吸灯&#xff1a; 1、资料 ESP32 开发环境 Espressif-IDE: https://blog.csdn.net/chuner0425/article/details/123466848 https://blog.csdn.net/bin_zhang1/article/details/129993820?…

Unity 面试篇|(九)操作系统与网络篇 【全面总结 | 持续更新】

目录 1. 客户端与服务器交互方式有几种&#xff1f;2. OSI七层模型有哪些&#xff0c;每一层的作用3. UDP/TCP含义&#xff0c;区别4. TCP/IP协议栈各个层次及分别的功能&#xff1f;5. 写出WWW的几个方法&#xff1f;6. Socket粘包7. Socket的封包、拆包8. Socket 客户端 队列…

数学建模常见算法的通俗理解(2)

目录 6 K-Means&#xff08;K-均值&#xff09;聚类算法&#xff08;无需分割数据即可分类&#xff09; 6.1 粗浅理解 6.2 算法过程 6.2.1 选定质心 6.2.2 分配点 6.2.3 评价 7 KNN算法&#xff08;K近邻算法&#xff09;&#xff08;K个最近的决定方案&#xff09; 7.…

MyBatis中的resultMap:深度解析与实战指南

前言 在Java开发中&#xff0c;数据库操作是至关重要的部分&#xff0c;而MyBatis作为一款优秀的持久层框架&#xff0c;以其灵活和强大的映射能力深受开发者喜爱。其中&#xff0c;<resultMap> 是MyBatis中最核心的元素之一&#xff0c;它提供了自定义SQL查询结果到Jav…

GraphicsMagick 的 OpenCL 开发记录(十一)

<2022-03-26 Sat> 对ImageMagick的number_channels及PixelChannelMap结构体中的channel和offset成员的理解 这个标题有点长&#xff0c;可能文章的内容也有点长&#xff0c;但是思路越来越清晰。先来看PixelChannelMap的结构体定义&#xff1a; typedef struct _Pixel…

【每日一题】按分隔符拆分字符串

文章目录 Tag题目来源解题思路方法一&#xff1a;遍历方法二&#xff1a;getline 写在最后 Tag 【遍历】【getline】【字符串】【2024-01-20】 题目来源 2788. 按分隔符拆分字符串 解题思路 方法一&#xff1a;遍历 思路 分隔符在字符串开始和结束位置时不需要处理。 分隔…

Crow:实现点击下载功能

Crow:设置网站的index.html-CSDN博客 讲述了如何完成一个最简单的网页的路由 很多网页提供了下载功能,怎么实现呢,其实也很简单。 假设网页的目录结构如图 $ tree static static ├── img │ └── goodday.jpg └── index.html //index.html <html> <body&…

专业137总分439东南大学920专业基础综合考研经验电子信息与通信电路系统芯片

我本科是南京信息工程大学&#xff0c;今年报考东南大学信息学院&#xff0c;成功逆袭&#xff0c;专业137&#xff0c;政治69&#xff0c;英语86&#xff0c;数一147&#xff0c;总分439。以下总结了自己的复习心得和经验&#xff0c;希望对大家复习有一点帮助。啰嗦一句&…

C++ :命名空间域

目录 冲突与命名&#xff1a; 举个例子&#xff1a; 全局与局部&#xff1a; 域作用限定符&#xff1a; 命名空间域&#xff1a; 冲突与命名&#xff1a; 在C语言中&#xff0c;我们通常会使用stdlib.h 而stdlib.h 本质上是一个函数的库&#xff0c;在程序中使用的大多数…

Java学习笔记(八)——Lambda表达式

文章目录 Lambda表达式Lambda表达式的省略写法Lambda练习练习1练习2 算法题算法题1 斐波那契数列算法题2 猴子吃桃子算法题3 爬楼梯 Lambda表达式 Lambda表达式是JDK8开始的一种新语法形式。 基本作用&#xff1a;简化函数式接口的匿名内部类的写法。 注意&#xff1a; Lam…

2023年总结我所经历的技术大变革

&#x1f4e2;欢迎点赞 &#xff1a;&#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff0c;赐人玫瑰&#xff0c;手留余香&#xff01;&#x1f4e2;本文作者&#xff1a;由webmote 原创&#x1f4e2;作者格言&#xff1a;新的征程&#xff0c;我们面对的不仅…

STL---Stack和Queue

一、stack的介绍和使用 &#xff08;1&#xff09;介绍 翻译: &#xff08;1&#xff09;stack是一种容器适配器&#xff0c;专门用在具有后进先出操作的上下文环境中&#xff0c;其删除只能从容器的一端进行元素的插入与提取操作。 &#xff08;2&#xff09; stack是作为容器…