60标准输入流

简介: 60标准输入流

C++入门——60s从0到1

标准输入流

 

在C++中,标准输入流是用于从用户获取输入的一种输入输出方式。标准输入流使用标准库中的`iostream`头文件来实现,其中`cin`对象是标准输入流的一种,用于从键盘读取用户输入的数据。在这篇文章中,我们将详细讲解C++标准输入流的用法和技巧。

 

读取基本数据类型

 

在C++中,可以使用`cin`对象来读取各种基本数据类型的输入,如整数、浮点数、字符和布尔值等。下面是一些示例代码:

 

#include <iostream>
using namespace std;
 
int main() {
    // 读取整数
    int x;
    cout << "请输入一个整数:" << endl;
    cin >> x;
    cout << "你输入的整数是:" << x << endl;
 
    // 读取浮点数
    float y;
    cout << "请输入一个浮点数:" << endl;
    cin >> y;
    cout << "你输入的浮点数是:" << y << endl;
 
    // 读取字符
    char z;
    cout << "请输入一个字符:" << endl;
    cin >> z;
    cout << "你输入的字符是:" << z << endl;
 
    // 读取布尔值
    bool flag;
    cout << "请输入一个布尔值:" << endl;
    cin >> flag;
    cout << "你输入的布尔值是:" << boolalpha << flag << endl;
 
    return 0;
}

 

在这个例子中,程序使用了`cin`对象来读取不同类型的用户输入。需要注意的是,在读取字符时,需要使用单引号将字符括起来。在读取布尔值时,使用了`boolalpha`流控制符来将布尔值以文字形式输出到屏幕上。

 

格式化输入

 

在实际应用中,我们通常需要对用户输入的内容进行格式化处理。在C++中,可以使用各种运算符和格式化字符串来实现格式化输入。下面是一些示例代码:

 

#include <iostream>
using namespace std;
 
int main() {
    // 读取带千分位分隔符的整数
    int x;
    cout << "请输入一个带千分位分隔符的整数:" << endl;
    cin.width(7); // 设置宽度
    cin >> setfill('0') >> x; // 使用setfill和setw设置填充字符和宽度
    cout << "你输入的整数是:" << x << endl;
 
    // 读取固定小数点宽度的浮点数
    float y;
    cout << "请输入一个固定小数点宽度的浮点数:" << endl;
    cin.precision(2); // 设置精度
    cin >> fixed >> y; // 使用fixed和setprecision设置固定小数点宽度和精度
    cout << "你输入的浮点数是:" << y << endl;
 
    // 读取对齐的多个数据项
    int a, b, c;
    cout << "请依次输入三个整数:" << endl;
    cin.width(10); // 设置宽度
    cin >> a >> b >> c; // 从左到右依次读取三个数据项
    cout << a << " " << b << " " << c << endl; // 使用空格进行对齐输出
 
    return 0;
}

在这个例子中,程序使用了各种运算符和格式化字符串来实现不同的格式化输入效果。需要注意的是,在使用`width`和`precision`设置宽度和精度时,需要同时使用它们才能生效。在使用左对齐和其他对齐方式时,需要使用`left`、`right`等流控制符来指定对齐方式。

目录
相关文章
|
缓存 监控 小程序
App性能测试揭秘(Android篇)
性能测试在移动测试领域一直是一个大难题,它最直观的表现是用户在前台使用 App 时的主观体验,然而决定体验优劣的背后,涉及到了许许多多的技术变迁。阅读此文,带你揭秘App性能测试。
5658 0
App性能测试揭秘(Android篇)
|
人工智能 监控 算法
未来技术趋势:人工智能与物联网的融合
【8月更文挑战第15天】本文深入探讨了人工智能(AI)与物联网(IoT)的结合如何引领技术革新,重塑行业格局。通过分析AI和IoT各自的发展趋势及其交汇点,我们揭示了这一融合对智能家居、工业自动化、健康医疗等领域带来的变革。文章还讨论了在追求这些先进技术时可能遇到的挑战和道德问题,为读者提供了一幅未来技术发展的蓝图。
|
监控 Java 测试技术
如何解读 jstat 工具输出的 G1 垃圾回收器性能数据?
如何解读 jstat 工具输出的 G1 垃圾回收器性能数据?
|
缓存 编解码 安全
探索Android 12的新特性与优化技巧
【6月更文挑战第7天】本文将深入探讨Android 12带来的创新功能和改进,包括用户界面的更新、隐私保护的加强以及性能的提升。同时,我们还将分享一些实用的优化技巧,帮助用户更好地利用这些新特性,提升手机的使用体验。
|
前端开发 API 开发者
.NET Web应用配置本地IIS(实现Visual Studio离线运行与调试
.NET Web应用配置本地IIS(实现Visual Studio离线运行与调试
504 0
.NET Web应用配置本地IIS(实现Visual Studio离线运行与调试
|
Shell Go 开发工具
项目分享|小师弟手把手教你用蓝牙模块
嵌入式蓝牙串口通讯模块(简称蓝牙模块)具有两种工作模式:命令响应工作模式和自动连接工作模式。
728 0
项目分享|小师弟手把手教你用蓝牙模块
|
Java
【学习笔记】【JAVA】Map.toString()后的字符串转换回Map类型
参考地址】:Map.toString()后字符串转换回Map
1127 0
【学习笔记】【JAVA】Map.toString()后的字符串转换回Map类型
|
Kubernetes 网络协议 安全
本地k8s运行总结
本机上运行k8s的各种不同软件的对比和结构图
801 0
|
Dubbo 应用服务中间件 Nacos
如何在edas中使用自建nacos
edas中默认的nacos可能存在某些问题导致无法使用,例如“上海区域还不支持nacos 2.0 grpc”。此时,如果我们应用服务需要使用2.0版本的naocs,那就需要自建2.0的nacos。
如何在edas中使用自建nacos