• C++
  • C++ 基础学习笔记:变量类型与输入输出格式化

  • @ 2025-7-15 17:38:39

C++ 基础学习笔记:变量类型与输入输出格式化

这份教程将通过示例代码详细讲解 C++ 中的基础数据类型、变量定义和输入输出格式化。代码中包含详细注释,帮助初学者理解每个概念的使用方法。

1. 数据类型概述

C++ 中的数据类型分为基本类型和复合类型,本教程重点介绍以下基本数据类型:

  • 整数类型intlong long
  • 浮点类型floatdouble
  • 字符类型char
  • 布尔类型bool

2. 变量定义与初始化

变量是存储数据的容器,使用前必须先定义。以下是不同数据类型的定义和初始化示例:

#include <iostream>
using namespace std;

int main() {
    // 整数类型
    int age = 25;             // int 范围: -21亿 ~ 21亿
    long long population = 1400000000;  // long long 范围更大

    // 浮点类型
    float piFloat = 3.14159f;  // float 单精度,注意加后缀 f
    double piDouble = 3.14159265358979;  // double 双精度,精度更高

    // 字符类型
    char grade = 'A';         // 字符用单引号,存储单个字符

    // 布尔类型
    bool isStudent = true;    // 布尔值只有 true 和 false

    // 输出变量值
    cout << "年龄: " << age << endl;
    cout << "人口: " << population << endl;
    cout << "float 类型的 π: " << piFloat << endl;
    cout << "double 类型的 π: " << piDouble << endl;
    cout << "成绩等级: " << grade << endl;
    cout << "是否为学生: " << (isStudent ? "是" : "否") << endl;

    return 0;
}

3. 输入输出基础

使用 cincout 进行标准输入输出,需包含 <iostream> 头文件。

#include <iostream>
using namespace std;

int main() {
    int num;
    double price;
    char gender;
    bool isMember;

    // 输入示例
    cout << "请输入一个整数: ";
    cin >> num;  // 从键盘读取整数

    cout << "请输入价格: ";
    cin >> price;  // 读取浮点数

    cout << "请输入性别 (M/F): ";
    cin >> gender;  // 读取字符

    cout << "是否为会员 (1=是, 0=否): ";
    cin >> isMember;  // 读取布尔值

    // 输出示例
    cout << "\n输入结果:" << endl;
    cout << "整数: " << num << endl;
    cout << "价格: " << price << endl;
    cout << "性别: " << gender << endl;
    cout << "是否为会员: " << (isMember ? "是" : "否") << endl;

    return 0;
}

4. 浮点数输出格式化

使用 <iomanip> 头文件中的 setprecisionfixed 控制输出精度:

#include <iostream>
#include <iomanip>  // 必须包含此头文件用于格式化
using namespace std;

int main() {
    double value = 3.14159265358979;

    // 默认输出(根据值自动调整精度)
    cout << "默认输出: " << value << endl;

    // 固定小数点后2位
    cout << "保留2位小数: " << fixed << setprecision(2) << value << endl;

    // 保留3位小数
    cout << "保留3位小数: " << setprecision(3) << value << endl;

    // 保留1位小数
    cout << "保留1位小数: " << setprecision(1) << value << endl;

    // 注意:一旦使用 fixed,后续输出都会保持固定格式
    // 若需恢复默认格式,可使用 resetiosflags(ios::fixed)
    cout << "恢复默认: " << resetiosflags(ios::fixed) << value << endl;

    return 0;
}

输出示例

默认输出: 3.14159
保留2位小数: 3.14
保留3位小数: 3.142
保留1位小数: 3.1
恢复默认: 3.14159

5. 布尔类型详解

布尔类型只有两个值:true(真)和 false(假),常用于逻辑判断。

#include <iostream>
using namespace std;

int main() {
    bool isRaining = true;
    bool hasLicense = false;

    // 布尔值直接输出为 1 (true) 或 0 (false)
    cout << "是否下雨: " << isRaining << endl;
    cout << "是否有驾照: " << hasLicense << endl;

    // 更友好的输出方式
    cout << "是否下雨: " << (isRaining ? "是" : "否") << endl;
    cout << "是否有驾照: " << (hasLicense ? "是" : "否") << endl;

    // 布尔值与整数的转换
    // 0 表示 false,非零值表示 true
    bool flag1 = 5;    // 非零值 -> true
    bool flag2 = 0;    // 零 -> false
    cout << "flag1: " << flag1 << endl;  // 输出 1
    cout << "flag2: " << flag2 << endl;  // 输出 0

    return 0;
}

6. 常量与变量

  • 变量:值可以改变的存储单元。
  • 常量:值不可变的存储单元,使用 const 关键字定义。
#include <iostream>
using namespace std;

int main() {
    // 变量(值可以修改)
    int score = 90;
    score = 95;  // 合法:修改变量值

    // 常量(值不可修改)
    const double PI = 3.14159;
    // PI = 3.14;  // 错误:不能修改常量值

    cout << "分数: " << score << endl;
    cout << "圆周率: " << PI << endl;

    return 0;
}

7. 总结

  • 数据类型:选择合适的数据类型存储不同类型的数据。
  • 变量初始化:定义变量时尽量初始化,避免使用未初始化的值。
  • 输入输出:使用 cincout 进行基本的输入输出操作。
  • 格式化:使用 setprecisionfixed 控制浮点数的输出精度。
  • 布尔类型:用于逻辑判断,值为 truefalse

通过这些示例,你可以掌握 C++ 中基本数据类型的使用方法和输入输出的格式化技巧。建议动手修改代码,观察不同的输出效果,加深理解。

1 条评论

  • @ 2025-7-15 17:39:10
    #include <iostream>
    #include <iomanip> // for std::setprecision
    //iomanip是一个用于输入输出格式化的头文件,里面存放了很多格式化输出的函数和操纵符
    using namespace std;
    int main()
    {
    	double x;
    	cout << "请输入一个数:";
    	cin >> x;
    	//保留几位小数,保留n位小数,那么第n位小数后面的数字会被舍弃
    	//但是如果第n位小数后面的数字大于等于5,那么第n位小数会加1
    	//保留n位小数,那么第n+1位小数会四舍五入
    	cout << "您输入的数是:" << x << endl;
    	cout << "保留两位小数:" << fixed << setprecision(2) << x << endl;
    	cout << "保留三位小数:" << fixed << setprecision(3) << x << endl;
    	cout << "保留1位小数:" << fixed << setprecision(1) << x << endl;
    	return 0;
    }
    
    #include <iostream>
    using namespace std;
    int main()
    {
    	//int n;
    	//创建一个整数变量n
    	//cout << "请输入一个整数: ";
    	//cin >> n; //从标准输入读取一个整数
    	//cout << "你输入的整数是: " << n << endl; //输出读取的整数
    	//int的整数范围是-2,147,483,648到2,147,483,647
    	//记住这个就可以了 int的-21亿多到21亿多的整数范围
    	//long long n;//双长整数类型long long
    	//cout << "请输入一个整数: ";
    	//cin >> n; //从标准输入读取一个整数
    	//cout << "你输入的整数是: " << n << endl; //输出读取的整数
    	//long long的整数范围是-9,223,372,036,854,775,808到9,223,372,036,854,775,807
    	//char n;//字符类型char 
    	////字符用单引括起来的单个字符
    	////创建一个字符变量n
    	//cout << "请输入一个字符: ";
    	//cin >> n; //从标准输入读取一个字符
    	//cout << "你输入的字符是: " << n << endl; //输出读取的字符
    	//创建变量的同时可以直接赋值,这种形式我们称为初始化
    	//char n = 'A'; //直接赋值一个字符
    	//cout << "你输入的字符是: " << n << endl; //输出读取的字符
    	//int m = 10; //整数类型int
    	//cout << "你输入的整数是: " << m << endl; //输出读取的整数
    	// 默认情况下,C++会将整数视为int类型
    
    
    	//小数数据类型有float和double
    	//float是单精度浮点数,double是双精度浮点数
    	//float的范围比较小,通常用于存储较小的数值
    	//double的范围更大,通常用于存储较大的数值
    	//在程序中,我们可以使用float和double来存储小数数据
    	//但是默认情况下,C++会将小数数据视为double类型
    	//double n = 3.14; //双精度浮点数
    	//cout << "你输入的小数是: " << n << endl; //输出读取的小数
    	//float m = 2.718; //单精度浮点数
    	//cout << "你输入的小数是: " << m << endl; //输出读取的小数
    	//常量是在程序中不会改变的值 3.14   2.718 'A' 10
    	//变量是在程序中可以改变的值 n m
    	//常量的值在程序运行时不会改变
    
    
    	//bool flag;//布尔类型bool 
    	//布尔类型用于表示真或假
    	//在C++中,布尔类型的值可以是true或false
    	//比如性别有男和女,男可以表示为true,女可以表示为false
    	//true和false是布尔类型的两个值
    	//true表示真,false表示假
    	//整数中,0表示false,非0表示true 
    	//非0值有个值比较特殊,用1代表表示true
    	//cout << "请输入一个值: ";
    	//cin >> flag; //从标准输入读取一个值
    	//cout << "你输入的值是: " << flag << endl; //输出读取的值
    
    	bool flag = true; //布尔类型变量flag
    	cout << "你输入的值是: " << flag << endl; //输出读取的值
    	//布尔类型的值可以是true或false
    	bool isTrue = false; //布尔类型变量isTrue
    	cout << "isTrue的值是: " << isTrue << endl; //输出布尔类型变量isTrue的值
    	return 0;
    }
    
    
    • 1