C++系列五:输入/输出

news/2024/10/18 6:07:58/

C++输入输出

    • 1. 输入
    • 2. 输出
    • 3. 格式化输出
    • 4. 总结

1. 输入

输入是指从外部源获得数据的过程, C++中可通过键盘或文件等外部源来获取输入数据。

(1)cin

cin是C++标准库中的一个输入流对象,用于从标准输入设备(通常是键盘)读取数据。cin是一个用于读取不同类型数据的操作符。

e.g. 从用户输入读取整数:

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

运行上述代码,输出:

Enter an integer: 10
You entered: 10

上述代码中可以看出,首先需要包含iostream头文件,然后使用using namespace std; 声明std命名空间。之后定义了一个整型变量num,并提示用户输入一个整数。最后,使用cin>>num语句将输入值存储在num变量中。需要注意,>> 是一个操作符,用于从输入流中提取数据。

(2)getline

getline是用于读取一行文本的函数,可从文件或标准输入读取一行字符,并将该行保存到一个字符串变量中。

e.g. 读取一行文本

#include <iostream>
#include <string>
using namespace std;int main() {string str;cout << "Enter your name: ";getline(cin, str);cout << "Hello, " << str << endl;return 0;
}

上述代码中,定义了一个字符串变量str,然后提示用户输入姓名。接下来,使用getline(cin, str)函数读取用户输入的整行数据,并将其存储在str变量中。最后,输出欢迎消息,其中包括用户输入的名称。

(3)文件输入

除了从键盘获取输入外,C++还允许从文件中读取输入。要进行文件输入,需要打开一个文件,然后使用cin重定向输入流。

e.g. 从文件中读取输入

#include <iostream>
#include <fstream>
using namespace std;int main() {ifstream infile("input.txt");int num;while (infile >> num) {cout << num << endl;}infile.close();return 0;
}

上述代码中,首先使用ifstream打开名为“input.txt”的文件,然后使用while循环读取文件中的每个整数并将其输出到屏幕上。最后,使用infile.close()关闭输入文件。

2. 输出

输出是指将数据发送到外部源的过程,C++中可通过控制台输出或将数据写入文件来进行输出。以下是C++中最常见的输出函数:

(1)cout

cout是C++标准库中的一个输出流对象,用于将数据打印到标准输出设备(通常是屏幕)。

e.g.

#include <iostream>
using namespace std;int main() {cout << "Hello, world!" << endl;return 0;
}

上述代码中,使用cout输出“Hello, world!”字符串,并使用endl语句添加新行。

(2)文件输出

除了将数据输出到控制台外,C++还允许将数据写入文件。要进行文件输出,需打开一个文件并使用cout重定向输出流。

e.g. 将数据写入文件

#include <iostream>
#include <fstream>
using namespace std;int main() {ofstream outfile("output.txt");outfile << "Hello, world!" << endl;outfile.close();return 0;
}

上述代码中,首先使用ofstream打开名为“output.txt”的输出文件,然后使用outfile << “Hello, world!”语句将字符串写入文件。最后,使用outfile.close()关闭输出文件。

3. 格式化输出

某些情况下需要以特定格式输出数据,例如浮点数保留小数点后两位。C++提供了一些格式化输出函数,可用于控制输出数据的格式。

(1)setw

setw()函数用于设置输出字段宽度。

e.g. 在一个字段宽度为10的列中输出一个整数

#include <iostream>
#include <iomanip>
using namespace std;int main() {int num = 12345;cout << setw(10) << num << endl;return 0;
}

运行上述代码,输出:

12345

上述代码中,将num变量输出到屏幕时,使用了setw(10)函数来指定输出字段的宽度。

(2)setprecision

setprecision()函数用于设置浮点数的精度。

e.g. 将浮点数保留小数点后两位

#include <iostream>
#include <iomanip>
using namespace std;int main() {double num = 3.1415926535;cout << setprecision(2) << num << endl;return 0;
}

运行上述代码,输出:

3.14

上述代码中使用setprecision(2)函数来指定浮点数的输出精度。

(3)fixedscientific

fixedscientific是两个控制浮点数输出格式的函数。fixed函数用于以固定小数位输出浮点数,而scientific函数用于以科学计数法输出浮点数。

#include <iostream>
#include <iomanip>
using namespace std;int main() {double num = 1234567890.123456;cout << fixed << setprecision(2) << num << endl;cout << scientific << setprecision(2) << num << endl;return 0;
}

运行上述代码,输出

1234567890.12
1.23e+009

上述代码中,使用fixed函数以固定格式输出浮点数,而使用scientific函数则以科学计数法输出浮点数。

4. 总结

20年前学习C++语言的幼稚记录

在这里插入图片描述


http://www.ppmy.cn/news/64598.html

相关文章

GEE:使用 ROC 曲线和 AUC 评估分类算法性能

作者:CSDN @ _养乐多_ 在机器学习和遥感数据分析领域,评估分类算法的性能是关键任务之一。Google Earth Engine(GEE)平台提供了丰富的遥感数据和分析工具,结合 ROC(接收者操作特征)曲线和 AUC(曲线下面积)分析,可以有效评估分类算法的准确性和可靠性。 本文将介绍如…

Unity 坐标系

一、左手坐标系与右手坐标系 常见的三维软件都采用笛卡尔坐标系&#xff0c;也就是常见的xyz轴坐标系。笛卡尔坐标系可以是左手坐标系也可以是右手坐标系&#xff0c;如下图所示 两种坐标系是镜像对称的。而Unity采用左手系&#xff0c;且xyz轴的默认方向与图中的左手系完全一…

C#开发的OpenRA游戏使用匿名类

C#开发的OpenRA游戏使用匿名类 OpenRA游戏里,使用了很多C#的特性,比如下的代码:var orders = self.TraitsImplementing<IIssueOrder>() .SelectMany(trait => trait.Orders.Select(x => new { Trait = trait, Order = x })) .Select(x => x) .O…

PXI 国产化测试系统中数据采集与分析软件的设计

数据采集与分析系统需求分析和总体设计 数据采集与分析系统是 PXI 测试系统的上位机软件子系统&#xff0c;在系统中有着重 要的作用。本章将首先简要介绍 PXI 测试系统&#xff0c;分析其整体结构与功能&#xff0c;说明数 据分析系统与 PXI 测试系统的关系&#xff…

算法记录 | Day58 单调栈

739.每日温度 思路&#xff1a; 1.首先&#xff0c;将答案数组 ans 全部赋值为 0。然后遍历数组每个位置元素。 2.如果栈为空&#xff0c;则将当前元素的下标入栈。 3.如果栈不为空&#xff0c;且当前数字大于栈顶元素对应数字&#xff0c;则栈顶元素出栈&#xff0c;并计算…

JSP企业人事管理系统设计(源代码+论文)

随着计算机技术的飞速发展&#xff0c;计算机在企业管理中应用的普及&#xff0c;利用计算机实现企业人事管理势在必行。对于大中型企业来说&#xff0c;利用计算机支持企业高效率完成劳动人事管理的日常事务&#xff0c;是适应现代企业制度要求、推动企业劳动人事管理走向科学…

电子会议桌牌系统——基站版

一、产品特点 低功耗&#xff0c;常规使用3-5年电池寿命 支持空中唤醒&#xff0c;刷新快速&#xff0c;几秒钟内看到结果 点阵电子纸屏幕&#xff0c;视角接近180 基于Web的应用界面&#xff0c;支持跨平台操作 安装简单&#xff0c;快速布置 电池供电不需要布线 双面显…

【机器学习】P21 正则化 Regularization(L1正则化 Lasso、L2正则化 Ridge、弹性网络正则化、Dropout正则化、早停法)

既然模型有概率发生过拟合现象&#xff0c;那么如何才能减少过拟合&#xff0c;或者防止过拟合的产生&#xff1f;方法之一就是正则化方法&#xff0c;Regularization&#xff1b; 我对正则化&#xff0c;有这样的理解&#xff1a;“我们既希望能够通过权重的调整从而建立更好…