C++ 基础输入输出

在 C++ 编程中,输入输出(I/O)操作是与用户和外部设备进行数据交互的关键环节。无论是从键盘获取用户输入,还是将程序结果输出到屏幕或文件,都离不开输入输出功能。本教程将深入介绍 C++ 中基础的输入输出操作,帮助你快速掌握这一重要部分。

一、标准输入输出流对象

C++ 标准库提供了iostream头文件,其中定义了std::cout(标准输出流对象)用于向控制台输出数据,std::cin(标准输入流对象)用于从控制台读取数据。

(一)使用std::cout输出

cpp 复制代码
#include <iostream>

int main() {
    // 输出字符串
    std::cout << "欢迎来到 C++输入输出的世界!" << std::endl;

    // 输出变量
    int num = 10;
    std::cout << "变量 num 的值为:" << num << std::endl;

    // 输出表达式结果
    int sum = 5 + 3;
    std::cout << "5 + 3 的结果是:" << sum << std::endl;

    return 0;
}

在上述代码中,<<是输出运算符,它可以将多个数据依次输出。std::endl表示换行,相当于\n,用于在输出后换行。

(二)使用std::cin输入

cpp 复制代码
#include <iostream>

int main() {
    int age;
    std::cout << "请输入您的年龄:";
    // 从控制台读取一个整数并存储到 age 变量中
    std::cin >> age;
    std::cout << "您输入的年龄是:" << age << std::endl;

    return 0;
}

>>是输入运算符,它会等待用户在控制台输入数据,并将输入的数据存储到指定的变量中。这里要注意,std::cin会根据变量的类型自动转换输入的数据类型,但如果输入的数据类型与变量不匹配,可能会导致错误结果。

二、输入输出格式控制

C++ 提供了多种方式来控制输入输出的格式,使输出结果更加美观和符合需求。

(一)设置宽度

可以使用setw函数(需要包含<iomanip>头文件)来设置输出数据的宽度。

cpp 复制代码
#include <iostream>
#include <iomanip>

int main() {
    int num1 = 12, num2 = 1234;
    std::cout << std::setw(6) << num1 << std::endl;
    std::cout << std::setw(6) << num2 << std::endl;

    return 0;
}

上述代码中,setw(6)将输出宽度设置为 6。如果数据宽度小于设置的宽度,会在左侧填充空格;如果数据宽度大于设置的宽度,则按实际宽度输出。

(二)设置精度

对于浮点数输出,可以使用setprecision函数来设置精度。

cpp 复制代码
#include <iostream>
#include <iomanip>

int main() {
    double num = 3.1415926;
    std::cout << std::setprecision(4) << num << std::endl;

    return 0;
}

这里setprecision(4)将浮点数的精度设置为 4,即输出小数点后 4 位数字。

(三)进制输出

可以使用std::hex(十六进制)、std::oct(八进制)、std::dec(十进制)来控制整数的进制输出。

cpp 复制代码
#include <iostream>

int main() {
    int num = 255;
    std::cout << "十进制:" << std::dec << num << std::endl;
    std::cout << "十六进制:" << std::hex << num << std::endl;
    std::cout << "八进制:" << std::oct << num << std::endl;

    return 0;
}

三、输入输出流的状态检查

在进行输入操作时,可能会出现错误情况,如输入不合法等。可以通过检查输入流的状态来判断输入是否成功。

cpp 复制代码
#include <iostream>

int main() {
    int num;
    std::cout << "请输入一个整数:";
    std::cin >> num;
    if (std::cin.good()) {
        std::cout << "输入成功,您输入的整数是:" << num << std::endl;
    } else {
        std::cout << "输入错误!" << std::endl;
        // 清除错误状态
        std::cin.clear();
        // 忽略缓冲区中剩余的字符
        std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
    }

    return 0;
}

std::cin.good()函数用于检查输入流是否处于正常状态。如果输入错误,可以使用std::cin.clear()清除错误状态,并使用std::cin.ignore()忽略缓冲区中可能残留的错误输入数据。

相关推荐
小汉堡编程3 小时前
数据结构——vector数组c++(超详细)
数据结构·c++
weixin_472339465 小时前
高效处理大体积Excel文件的Java技术方案解析
java·开发语言·excel
枯萎穿心攻击6 小时前
响应式编程入门教程第二节:构建 ObservableProperty<T> — 封装 ReactiveProperty 的高级用法
开发语言·unity·c#·游戏引擎
Eiceblue7 小时前
【免费.NET方案】CSV到PDF与DataTable的快速转换
开发语言·pdf·c#·.net
tan180°8 小时前
MySQL表的操作(3)
linux·数据库·c++·vscode·后端·mysql
m0_555762908 小时前
Matlab 频谱分析 (Spectral Analysis)
开发语言·matlab
浪裡遊9 小时前
React Hooks全面解析:从基础到高级的实用指南
开发语言·前端·javascript·react.js·node.js·ecmascript·php
彭祥.9 小时前
Jetson边缘计算主板:Ubuntu 环境配置 CUDA 与 cudNN 推理环境 + OpenCV 与 C++ 进行目标分类
c++·opencv·分类
lzb_kkk9 小时前
【C++】C++四种类型转换操作符详解
开发语言·c++·windows·1024程序员节
好开心啊没烦恼10 小时前
Python 数据分析:numpy,说人话,说说数组维度。听故事学知识点怎么这么容易?
开发语言·人工智能·python·数据挖掘·数据分析·numpy