c++入门——c++输入cin和输出cout的简单使用

c++输入cin、输出cout

  • [1 cin](#1 cin)
  • [2 cout](#2 cout)
  • [3 cin和cout说明](#3 cin和cout说明)

c++在c语言的输入、输出函数的基础上进行了封装。

1 cin

c可以理解为控制台,in可以理解为输入。

参考代码:

cpp 复制代码
void f(){
    int a;float b;double c;char d;
    cin>>a>>b>>c>>d;//这里和scanf是一样的功能
}

void f2(){
    char st[20]={"\0"};
    cin>>st;//不读空格
    cin.getline(st,20);//读取一行的20个字符,包括空格,不包括换行符
    (cin>>st).get();//不读空格,读完后吸收多余换行符
}

2 cout

参考代码

cpp 复制代码
void f(){
    int a=1;float b=2.2f;
    cout<<a<<b;//输出变量,类似printf
    
    char st[]="Hello, world.";
    cout<<"Hello, world.";//输出字符串
    cout<<st;//输出字符串
    cout<<endl;//输出换行符endl,endl会刷新流
}

#include<iomanip>
//格式输出字符串
void f2(){
    float b=2.2f;
    cout<<fixed<<setprecision(3)<<b;//按3位小数输出浮点数
    int a=4;
    cout<<step(5)<<a;
}

其中endl:end of line。在c语言的换行的基础上新增了很多东西,例如刷新输出流等。

3 cin和cout说明

说明:

  1. 使用cout 标准输出对象(控制台)和cin 标准输入对象(键盘)时,必须包含< iostream >头文件以及按命名空间使用方法使用std。

  2. cout和cin是全局 的流对象,endl 是特殊的C++符号,表示换行输出 ,他们都包含在包含<iostream>头文件中。

  3. <<是流插入运算符,>>是流提取运算符(从控制台提取一个数据,将数据的值给>>后面的变量)。如果有学过运算符重载,可以知道这个提取运算符本质就是一个函数。

测试样例:

cpp 复制代码
#include<iostream>
using namespace std;

int main() {
	int a, b;
	double c;
	cin.operator>>(a);//可以理解为cin的成员函数
	cin.operator>>(b).operator>>(c);
	(cout.operator<<(a) << b).operator<<(c);//加()调整优先级
	return 0;
}
  1. 使用C++输入输出更方便,不需要像printf/scanf输入输出时那样,需要手动控制格式。C++的输入输出可以自动识别变量类型。但在操作的数据量比较大时cin和cout会消耗更多的时间,所以使用再方便也要分情况使用。

  2. 实际上cout和cin分别是ostream和istream类型的对象,>>和<<也涉及运算符重载等知识,

注意:早期标准库将所有功能在全局域中实现,声明在.h后缀的头文件中,使用时只需包含对应

头文件即可,后来将其实现在std命名空间下,为了和C头文件区分,也为了正确使用命名空间,

规定C++头文件不带.h;旧编译器(vc 6.0)中还支持<iostream.h>格式,后续编译器已不支持,因

此推荐使用<iostream>+std的方式:

cpp 复制代码
#include<iostream>
using namespace std;

ps:关于cout和cin还有很多更复杂的用法,比如控制整形输出进制格式等等。因为C++兼容C语言的用法,这些用得不是很多,以后有机会再详细介绍。

相关推荐
傻啦嘿哟几秒前
Python多线程与类方法的交互:锁提升安全性的奥秘
java·开发语言
半盏茶香1 分钟前
启航数据结构算法之雅舟,悠游C++智慧之旅——线性艺术:顺序表之细腻探索
c语言·开发语言·数据结构·c++·算法·机器学习·链表
已是上好佳12 分钟前
java实验4 反射机制
java·开发语言
tan180°15 分钟前
Cpp::哈希表的两种模拟实现方式(27)
数据结构·c++·哈希算法·散列表
小园子的小菜17 分钟前
Rockect基于Dledger的Broker主从同步原理
java·开发语言
火云牌神32 分钟前
[python]实现可以自动清除过期条目的缓存
开发语言·python·缓存
黄霑和金庸我都喜欢1 小时前
桌面开发 的设计模式(Design Patterns)核心知识
开发语言·后端·golang
晚雾也有归处1 小时前
结构体(C语言)
c语言·开发语言·数据结构·算法
qq_433554541 小时前
C++面向对象编程:纯虚函数、抽象类、虚析构、纯虚析构
开发语言·c++·算法
佛系小嘟嘟3 小时前
Android Jetpack Compose开发小组件【入门篇】
android·开发语言·android jetpack·小组件