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语言的用法,这些用得不是很多,以后有机会再详细介绍。

相关推荐
LuckyTHP1 分钟前
迁移shibboleth java获取shibboleth用户信息
java·开发语言
墨韵流芳8 分钟前
CCF-CSP第41次认证第三题——进程通信
c++·人工智能·算法·机器学习·csp·ccf
客卿1239 分钟前
数论===质数统计(暴力法,)
java·开发语言
hz_zhangrl14 分钟前
CCF-GESP 等级考试 2026年3月认证C++五级真题解析
c++·青少年编程·程序设计·gesp·c++五级·gesp2026年3月·gesp c++五级
Σίσυφος190016 分钟前
C++ 多肽经典面试题
开发语言·c++·面试
csdn_aspnet1 小时前
C# 求n边凸多边形的对角线数量(Find number of diagonals in n sided convex polygon)
开发语言·算法·c#
qq_254674411 小时前
Docker 中的 镜像(
开发语言
码云社区2 小时前
JAVA二手车交易二手车市场系统源码支持微信小程序+微信公众号+H5+APP
java·开发语言·微信小程序·二手交易·闲置回收
crescent_悦2 小时前
C++:The Largest Generation
java·开发语言·c++
paeamecium2 小时前
【PAT甲级真题】- Student List for Course (25)
数据结构·c++·算法·list·pat考试