c++基本的输入输出

简介: c++基本的输入输出

在C++中,基本的输入输出功能主要通过流对象(如std::cinstd::cout)和相关的操作符(如>><<)来实现。这些功能被定义在<iostream>头文件中,是C++标准库的一部分。下面我将详细讲解C++的基本输入输出功能,并附上一个编程示例。

C++输入输出流

在C++中,输入输出是通过流(stream)来处理的。流是一个字符序列,可以从源(如键盘、文件等)流向目标(如屏幕、打印机、文件等),或者从目标流向源。C++标准库提供了几个预定义的流对象,用于处理常见的输入输出任务。

1.标准输出流(std::cout)std::cout是一个预定义的对象,用于将数据输出到标准输出设备(通常是屏幕)。它属于std命名空间,并在<iostream>头文件中定义。

2.标准输入流(std::cin)std::cin是另一个预定义的对象,用于从标准输入设备(通常是键盘)读取数据。同样,它也属于std命名空间,并在<iostream>头文件中定义。

基本的输入输出操作

1.输出操作:使用<<操作符将数据输出到std::cout。例如:

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

在上面的示例中,字符串"Hello, World!"被输出到标准输出设备(屏幕),然后输出一个换行符(由std::endl产生)。

2.输入操作:使用>>操作符从std::cin读取数据。例如:

#include <iostream> 
int main() { 
int num; 
std::cout << "Please enter a number: "; 
std::cin >> num; 
std::cout << "You entered: " << num << std::endl; 
return 0; 
}

在上面的示例中,程序首先输出一个提示字符串,然后从标准输入设备(键盘)读取一个整数,并将其存储在变量num中。最后,程序输出用户输入的整数。

3.格式化输入输出

C++还支持对输入输出进行格式化,以便更好地控制数据的显示方式。这可以通过使用std::setwstd::setprecision等操作符来实现,它们被定义在<iomanip>头文件中。

4.设置输出宽度:使用std::setw操作符可以设置输出字段的宽度。例如:

#include <iostream> 
#include <iomanip> 
int main() { 
int num = 123; 
std::cout << std::setw(5) << num << std::endl; // 输出 " 123" 
return 0; 
}

在上面的示例中,std::setw(5)设置了输出字段的宽度为5个字符。由于整数num只有3个字符宽,因此在其前面填充了两个空格。

5.设置浮点数的精度:使用std::setprecisionstd::fixed可以设置浮点数的精度和显示方式。例如:

#include <iostream> 
#include <iomanip> 
int main() { 
double pi = 3.141592653589793; 
std::cout << std::fixed << std::setprecision(2) << pi << std::endl; // 输出 "3.14" 
return 0; 
}

在上面的示例中,std::fixed指定了使用定点表示法来显示浮点数,而std::setprecision(2)则设置了小数点后的位数为2。因此,输出结果为"3.14"。

编程示例:简单的计算器

下面是一个使用C++基本输入输出功能实现的简单计算器示例:

#include <iostream> 
int main() { 
double num1, num2, result; 
char op; 
std::cout << "Enter an operator (+, -, *, /): "; 
std::cin >> op; 
std::cout << "Enter two numbers: "; 
std::cin >> num1 >> num2; 
switch (op) { 
case '+': 
result = num1 + num2; 
break; 
case '-': 
result = num1 - num2; 
break; 
case '*': 
result = num1 * num2; 
break; 
case '/': 
if (num2 != 0) { 
result = num1 / num2; 
} else { 
std::cout << "Error: Division by zero!" << std::endl; 
return 1; 
} 
break; 
default: 
std::cout << "Error: Invalid operator!" << std::endl; 
return 1; 
} 
std::cout << num1 << " " << op << " " << num2 << " = " << result << std::endl; 
return 0; 
}

在上面的示例中,程序首先提示用户输入一个运算符和两个数字。然后,它使用switch语句根据用户输入的运算符执行相应的计算操作,并将结果显示在屏幕上。如果用户输入了无效的运算符或尝试除以零,则程序会输出错误消息并返回非零值。

相关文章
|
8月前
|
存储 编译器 C++
c++基本的输入输出
c++基本的输入输出
60 0
|
存储 编译器 C++
C++ 入门篇之基本的输入输出
C++ 入门篇之基本的输入输出
|
8月前
|
存储 编译器 C++
C++ 基本的输入输出
C++ 基本的输入输出
|
存储 编译器 C++
C++ 基本的输入输出
【摘要】 C++ 基本的输入输出C++ 标准库提供了一组丰富的输入/输出功能,我们将在后续的章节进行介绍。本章将讨论 C++ 编程中最基本和最常见的 I/O 操作。C++ 的 I/O 发生在流中,流是字节序列。如果字节流是从设备(如键盘、磁盘驱动器、网络连接等)流向内存,这叫做输入操作 。如果字节流是从内存流向设备(如显示屏、打印机、磁盘驱动器、网络连接等),这叫做输出操作。I/O 库头文件下列的头文...
|
存储 编译器 C++
C++ 基本的输入输出
C++ 标准库提供了一组丰富的输入/输出功能,我们将在后续的章节进行介绍。本章将讨论 C++ 编程中最基本和最常见的 I/O 操作。
|
存储 编译器 C++
C++ 基本的输入输出
C++ 标准库提供了一组丰富的输入/输出功能,我们将在后续的章节进行介绍。本章将讨论 C++ 编程中最基本和最常见的 I/O 操作。
|
存储 编译器 C++
C++ 入门篇之基本的输入输出
C++ 入门篇之基本的输入输出
93 0
C++ 入门篇之基本的输入输出
|
1天前
|
设计模式 IDE 编译器
【C++面向对象——类的多态性与虚函数】编写教学游戏:认识动物(头歌实践教学平台习题)【合集】
本项目旨在通过C++编程实现一个教学游戏,帮助小朋友认识动物。程序设计了一个动物园场景,包含Dog、Bird和Frog三种动物。每个动物都有move和shout行为,用于展示其特征。游戏随机挑选10个动物,前5个供学习,后5个用于测试。使用虚函数和多态实现不同动物的行为,确保代码灵活扩展。此外,通过typeid获取对象类型,并利用strstr辅助判断类型。相关头文件如&lt;string&gt;、&lt;cstdlib&gt;等确保程序正常运行。最终,根据小朋友的回答计算得分,提供互动学习体验。 - **任务描述**:编写教学游戏,随机挑选10个动物进行展示与测试。 - **类设计**:基类
11 3
|
23小时前
|
编译器 数据安全/隐私保护 C++
【C++面向对象——继承与派生】派生类的应用(头歌实践教学平台习题)【合集】
本实验旨在学习类的继承关系、不同继承方式下的访问控制及利用虚基类解决二义性问题。主要内容包括: 1. **类的继承关系基础概念**:介绍继承的定义及声明派生类的语法。 2. **不同继承方式下对基类成员的访问控制**:详细说明`public`、`private`和`protected`继承方式对基类成员的访问权限影响。 3. **利用虚基类解决二义性问题**:解释多继承中可能出现的二义性及其解决方案——虚基类。 实验任务要求从`people`类派生出`student`、`teacher`、`graduate`和`TA`类,添加特定属性并测试这些类的功能。最终通过创建教师和助教实例,验证代码
18 5
|
23小时前
|
存储 算法 搜索推荐
【C++面向对象——群体类和群体数据的组织】实现含排序功能的数组类(头歌实践教学平台习题)【合集】
1. **相关排序和查找算法的原理**:介绍直接插入排序、直接选择排序、冒泡排序和顺序查找的基本原理及其实现代码。 2. **C++ 类与成员函数的定义**:讲解如何定义`Array`类,包括类的声明和实现,以及成员函数的定义与调用。 3. **数组作为类的成员变量的处理**:探讨内存管理和正确访问数组元素的方法,确保在类中正确使用动态分配的数组。 4. **函数参数传递与返回值处理**:解释排序和查找函数的参数传递方式及返回值处理,确保函数功能正确实现。 通过掌握这些知识,可以顺利地将排序和查找算法封装到`Array`类中,并进行测试验证。编程要求是在右侧编辑器补充代码以实现三种排序算法
16 5