C++初学者——常用的输入


前言

C++是一种面向对象的高级程序设计语言,是C语言的超集,在比赛中输入也是多种多样,今天本蒟蒻给各位蒟蒻们 大佬们总结了一下常用的输入。

cin

介绍

作为刚学C++第一个学的输入,cin可谓基本万能,不管是string(除句子),char,int,long long,等都可以用cin输入。

e.g.

#include<bits/stdc++.h>
using namespace std;
signed main()   
{
	int n;
	long long m;
	double k;
	char a;
	string b;
	float c;
	cin>>n>>m>>k>>a>>b>>c;
}

注意事项

1.不能输入空格
2.速度不是很快
3.需要:

#include<iostream>
using namespace std;

getline

介绍

但是,如果是输入一个句子呢?
显然,cin就无能为力了,这时候,就需要getline了。
getline用来专门输入字符串,可以忽略掉空格符,也就是可以输入一个句子

e.g.

#include<bits/stdc++.h>
using namespace std;
signed main()   
{
	string s;
	getline(cin,s);
}

注意事项

1.只能输入字符串
2.输入也不是很快
3.需要:

#include<iostream>
using namespace std;

scanf

介绍

比赛中往往会出现输入数据过多的情况,这时候用cin就很可能会TLE,所以我们使用更快的scanf

scanf是最常用的输入方式之一,它和cin一样,可以输入很多类型(非空格),速度也很快。
scanf输入格式:scanf(“%输入类型”,&输入变量名);
输入类型如下:

c 读入域宽指定的数目个字符组成的字符序列(后面不会加上空字节),如果省略宽度则读入单字符。如%c或%1c读入单字符,%2c读入两个字符(后面不会加上空字节),以此类推。
s读入一个的字符序列,后面会加上空字节,遇到空白字符(\t \r \n 空格等)完成读取。
d 读入可选有符号(可选有符号表示输入时可以带符号也可以不带符号,不带符号则视为非负)十进制整数。输入格式应该像strtol函数的base实参为10调用时识别的字符序列一样。
u 读入无符号符号十进制整数。输入格式应该像strtol函数的base实参为10调用时识别的字符序列一样。
i 读入可选有符号整数。输入格式应该像strtol函数的base实参为0调用时识别的字符序列一样。
a,e,f,g,A,E,F,G 读入可选有符号浮点数,输入格式应该像strtod函数识别的字符序列一样。
o 读入可选有符号八进制整数。输入格式应该像strtoul函数的base实参为8调用时识别的字符序列一样。
x,X读入可选有符号十六进制整数。输入格式应该像strtoul函数的base实参为16调用时识别的字符序列一样。
p 读入一个指针值。读入的字符序列应该与fprintf的%p产生的字符序列形式相同。

h与d, i, o, u, x, X, or n配合使用,表示对应一个short int或unsigned short int数据。
l 与d, i, o, u, x, X, or n配合使用,表示对应一个long int或unsigned long int数据;与a, A, e, E, f, F, g, or G配合使用表示对应一个double数据;与c,s,[配合使用表示对应wchar_t数据。
ll与d, i, o, u, x, X, or n配合使用,表示对应一个long long int或unsigned long long int数据。
j与d, i, o, u, x, X, or n配合使用,表示对应一个intmax_t或uintmax_t数据。
z与d, i, o, u, x, X, or n配合使用,表示对应一个size_t数据(或与size_t对应的有符号整型数据)。
t与d, i, o, u, x, X, or n配合使用,表示对应一个ptrdiff_t数据(或与ptrdiff_t对应的无符号整型数据)。
L 与a, A, e, E, f, F, g, or G配合使用,表示对应一个long double数据。

e.g.

#include<bits/stdc++.h>
using namespace std;
signed main()   
{
	int n;
	long long m;
	double k;
	scanf("%d%lld%lf",&n,&m,&k);
}

注意事项

1.不要对应错输入类型
2. %& 不要打错
3.需要:

#include<stdio.h>

read

介绍

可有时数据还是太大了,用scanf都有点慢,只能使用read(快速读入)了。
read是getchar()的一种应用,特点是快,准,稳。
速度very very very的

e.g.

inline void read(int& x)
{
	x=0;
	char c;
	for(c=getchar();c<'0'||c>'9';c=getchar());
	for(;c>='0'&&c<='9';c =getchar())
	x=(x<<3)+(x<<1)+c-'0';
}
read(n);

注意事项

你想有吗

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值