c++的输入与输出
C++的六个输入
cin输入
- 输入一个数字或字符(不接受空字符作为字符输入,当输入字符为空字符时,会不断重复要求输入,直至输入字符非空后,通过回车结束输入)
#include <iostream>
using namespace std;
int main () {
int a,char b;
cin>>a>>b; // cin允许这种"连续输入"模式
cout<<a<<','<<b<<endl;
return 0;
}
- 接受一个字符串,遇“空格”、“TAB”、“回车”都结束
#include <iostream>
using namespace std;
int main ()
{
char a[20];
cin>>a;
cout<<a<<endl;
return 0;
}
cin.get()
- cin.get(字符变量名) 可以用来接收字符:
#include <iostream>
using namespace std;
int main () {
char ch;
ch=cin.get(); //或者cin.get(ch);
cout<<ch<<endl;
return 0;
}
- cin.get(字符数组名,串长) 用来接收一行字符串,可以接收空格:
#include <iostream>
using namespace std;
int main () {
char a[20];
cin.get(a,20);
cout<<a<<endl;
return 0;
}
- 没有参数,主要是用于舍弃输入流中的不需要的字符,多用于舍弃前一次输入时放在输入缓冲区的回车。
cin.getline()
- 用法1: 接受一个字符串,可以接收空格并输出:
#include <iostream>
using namespace std;
int main () {
char m[20];
cin.getline(m,5);
cout<<m<<endl;
return 0;
}
- 用法2: 当用在多维数组中的时候,也可以用cin.getline(m[i],20)之类的用法:
#include<iostream>
#include<string>
using namespace std;
int main () {
char m[3][20];
for(int i=0;i<3;i++) {
cout<<"\n请输入第"<<i+1<<"个字符串:"<<endl;
cin.getline(m[i],20);
}
cout<<endl;
for(int j=0;j<3;j++)
cout<<"输出m["<<j<<"]的值:"<<m[j]<<endl;
return 0;
}
gets()
- 接受一个字符串,可以接收空格并输出(需
#include <string>
):
#include<iostream>
#include<string>
using namespace std;
int main () {
char m[20];
gets(m); //不能写成m=gets();
cout<<m<<endl; return 0;
}
gets()只能和char(或char*)定义的字符串地址搭配,不能和string定义的字符串地址搭配
- 用法2: 类似cin.getline()里面的一个例子,gets()同样可以用在多维数组里面:
#include<iostream>
#include<string>
using namespace std;
int main () {
char m[3][20];
for(int i=0;i<3;i++) {
cout<<"\n请输入第"<<i+1<<"个字符串:"<<endl;
gets(m[i]);
}
cout<<endl;
for(int j=0;j<3;j++)
cout<<"输出m["<<j<<"]的值:"<<m[j]<<endl;
return 0;
}
getchar()
#include<iostream>
#include<string>
using namespace std;
int main () {
char ch;
ch=getchar(); //不能写成getchar(ch);
cout<<ch<<endl;
}
cin的进制输入与cout的格式输出
cin的进制输入
int x ;
cin >> x ; //默认十进制输入
cin >> dec >> x ; //十进制输入
cin >> oct >> x ; //八进制输入
cin >> hex >> x ; //十六进制输入
cout的格式输出
#include<iomanip>
进制输出
cout<<"用十进制输:"<<dec<<a<<endl; //十进制显示:30。
cout<<"用八进制输出:"<<oct<<a<<endl; //八进制显示:36。
cout<<"用十六进制输出:"<<hex<<a<<endl; //十六进制显示:OX1E。
cout<<showbase; //显示数字的基数。
cout<<uppercase; //用大写字母显示十六进制的字母。
cout<<noshowbase; //取消显示数字基数。
cout<<nouppercase; //取消用大写字母显示十六进制。
}
- 保留小数
cout<<setprecision(6)<<scientific<<f<<endl; //用科学计数法形式输出f值,6位小数。
cout<<setprecision(5)<<fixed<<f<<endl; //用小数形式输出f值,5位小数。
- 数位填充
cout<<setw(10)<<a<<endl; //设置宽度为10显示数字。
cout<<setfill('$')<<setw(10)<<a<<endl; //设置显示宽度为10并$填充空白处。
cout<<left<<setw(10)<<a<<endl; //左靠齐。
cout<<right<<setw(10)<<a<<endl; //右靠齐。
转载自EXP
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?