【C/C++】C/C++编程——整型(一)

本文详细介绍了C++中的整型数据类型,包括各种整型的大小、取值范围,以及如何使用std::cout输出整型值,std::cin处理整数输入,以及格式化输出和输入的注意事项。
摘要由CSDN通过智能技术生成

整型

C++ 中的整型是基本的数据类型之一,用于表示没有小数部分的数。这包括正整数、负整数以及零。C++ 提供了多种整型,以适应不同大小的数值需求和优化内存使用。

整型的种类

C++ 中的整型可以根据其大小(即占用的字节数)和能够表示的数值范围来分类。下表概述了 C++ 中常见的整型,包括它们的名称和在大多数现代编译器和系统中的典型占用空间。需要注意的是,实际的大小可能根据编译器和目标平台的架构(如 32 位或 64 位系统)而有所不同。

类型典型大小 (字节)取值范围(有符号)说明
short intshort2-32,768 至 32,767短整型,用于节省内存空间,适合存储较小的整数值。
int4-2,147,483,648 至 2,147,483,647最常用的整型,适用于一般整数运算。
long intlong4 或 832 位:-2,147,483,648 至 2,147,483,647
64 位:-9,223,372,036,854,775,808 至 9,223,372,036,854,775,807
长整型,大小可能等于或大于 int,在 64 位系统中通常更大,用于更大范围的整数。
long long intlong long8-9,223,372,036,854,775,808 至 9,223,372,036,854,775,807提供最大的整数范围,用于需要非常大数值的场合。

整型的输出

在 C++ 中,输出整型变量的值通常使用 std::cout 对象,它是标准输出流。std::cout 位于 <iostream> 头文件中,并且是用来向控制台(或其他标准输出设备)发送输出的。输出操作通过 << 运算符(插入运算符)完成,该运算符用于将数据从程序发送到标准输出流。

基本用法

输出整型变量的基本语法是:

std::cout << variable;

这里,variable 是你想要输出的整型变量。

示例
#include <iostream>

int main() {
    int myInt = 10;
    std::cout << "The value of myInt is: " << myInt << std::endl;
    return 0;
}

运行结果

在这里插入图片描述

在这个示例中,myInt 是一个整型变量,其值被初始化为 10。使用 std::cout 输出一段文本,后面跟着 myInt 的值,最后是一个换行符(通过 std::endl)。

格式化输出

C++ 还提供了一些方法来格式化输出,例如设置字段宽度、填充字符和数值基数(十进制、十六进制、八进制)。

设置字段宽度

使用 std::setw 来设置下一个输出字段的宽度。std::setw 需要 <iomanip> 头文件。

#include <iostream>
#include <iomanip>

int main() {
    int myInt = 42;
    std::cout << "The value of myInt is: "<< myInt << std::endl;
    std::cout << "The value of myInt is: " << std::setw(10) << myInt << std::endl;
    return 0;
}

在这里插入图片描述

在这个示例中,std::setw(10) 设置了字段宽度为 10,因此输出的数字将在一个 10 字符宽的字段中右对齐显示。

设置填充字符

使用 std::setfill 来设置填充字符,这也需要 <iomanip> 头文件。

#include <iostream> // 包含输入输出流
#include <iomanip>  // 包含格式化输出的库

int main() {
    int myInt = 42; // 定义一个整型变量并初始化

    // 使用std::cout输出myInt,设置字段宽度为10,不足部分用'*'填充
    std::cout << std::setfill('*') << std::setw(10) << myInt << std::endl;

    return 0; // 表示程序正常结束
}

在这里插入图片描述

如果 myInt 值为 42,这将输出"********42",因为字段宽度为 10,不足部分用 * 填充。

数值基数

使用 std::hexstd::octstd::dec 可以设置十六进制、八进制和十进制输出。

#include <iostream> // 包含标准输入输出流库

int main() {
    int myInt = 42; // 定义一个整型变量并初始化

    // 使用十六进制格式输出myInt的值
    std::cout << "Hex: " << std::hex << myInt << std::endl;

    // 使用八进制格式输出myInt的值
    std::cout << "Oct: " << std::oct << myInt << std::endl;

    // 使用十进制格式输出myInt的值
    std::cout << "Dec: " << std::dec << myInt << std::endl;

    return 0; // 表示程序正常结束
}

在这里插入图片描述

在这个例子中使用 std::coutstd::hex 以十六进制格式输出 myInt 的值。输出将以"Hex: "开头,后跟 myInt 的十六进制表示。然后,使用 std::coutstd::oct 以八进制格式输出 myInt 的值。输出将以"Oct: "开头,后跟 myInt 的八进制表示。最后,使用 std::coutstd::dec 以十进制格式输出 myInt 的值。输出将以"Dec: "开头,后跟 myInt 的十进制表示。

整型的输入

在 C++ 中,整型数据的输入是通过标准输入流 std::cin 来完成的,这是一个与 std::cout 相对的输入流对象。std::cin 位于 <iostream> 头文件中,并且主要用于从标准输入设备(通常是键盘)读取数据。

基础用法

要从标准输入读取一个整型变量,基本的语法结构如下:

type variable;
std::cin >> variable;

这里的 type 是整型数据的类型(例如,intshortlonglong long 等),而 variable 是变量的名称。

示例代码
#include <iostream>

int main() {
    int number;
    std::cout << "Please enter an integer: ";
    std::cin >> number;
    std::cout << "You entered: " << number << std::endl;
    return 0;
}

在这里插入图片描述

在这个示例中,程序首先提示用户输入一个整数,然后使用 std::cin 从键盘读取输入,并将输入的值存储到名为 number 的变量中。最后,程序使用 std::cout 输出用户输入的值。

输入验证

在实际应用中,用户的输入可能不总是符合预期。例如,当期望输入一个整数时,用户可能输入了一个字符或字符串,这会导致 std::cin 进入错误状态,随后的输入操作将会失败。

为了处理这种情况,需要检查 std::cin 的状态,并在发现错误时采取措施。这通常涉及到两个步骤:清除错误标志和丢弃错误输入。

示例代码
#include <iostream>
#include <limits>

int main() {
    int number;
    std::cout << "Please enter an integer: ";

    while (!(std::cin >> number)) {
        std::cin.clear(); // 清除错误标志
        std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); // 丢弃错误输入直到下一个换行符
        std::cout << "Invalid input. Please enter an integer: ";
    }

    std::cout << "You entered: " << number << std::endl;
    return 0;
}

在这里插入图片描述

在这个改进的示例中,如果用户的输入导致 std::cin 进入错误状态,程序会使用 std::cin.clear() 来清除错误标志,然后使用 std::cin.ignore() 来丢弃错误的输入直到下一个换行符。这样,用户就有机会重新输入一个有效的整数。

注意事项

  • 当使用 std::cin 进行输入时,如果输入流中还有其他待处理的数据(如换行符),这些数据可能会影响后续的输入操作。在某些情况下,可能需要额外的 std::cin.ignore() 调用来处理这些额外的数据。
  • 对于超出整型变量表示范围的输入,std::cin 会导致未定义行为,这通常会导致变量存储最大或最小可能值,或者完全不可预测的值。
  • 了解不同整型的取值范围和选择合适的整型对于防止溢出和意外行为非常重要。
  • 23
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shopeeai

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值