当前位置: 代码迷 >> 综合 >> 司延 OI第二章第四节 输入输出
  详细解决方案

司延 OI第二章第四节 输入输出

热度:94   发布时间:2024-01-25 03:38:52.0

C++用于输入输出的函数有三组,分别为字符输入输出(getchar,putchar),格式化输入输出(scanf,printf),流输入输出(cin,cout)
一、字符输入输出
(一)getchar()
用于输入字符,常为把输入的字符赋予一个字符变量。
一个getchar()只能接受一个字符,输入多个也按照单个处理;唯一可以接受空格和回车的输入;其等待用户的输入,可用于暂停程序直到按下回车键。
若有不止一个getchar(),应在一次性输入所有字符之后再按回车,否则回车会被当做字符读入。
(二)putchar()
作用是输出单个字符。
二者格式如下。

//字符输入输出的使用
#include<cstdio>
using namespace std;
int main(){char ch;//定义字符变量ch,未赋值char c='B';//定义字符c,赋值为字符'B'ch=getchar();//输入chputchar(c);//输出cputchar(ch);//输出chputchar('\x42');//用转义字符输出字符'B'putchar(0x42);//16进制ASCII码输出字符'B'putchar(66);//10进制ASCII码输出字符'B'
}``二、流输入输出
()cin
自动识别变量类型。
格式如下:
cin>>变量;
cin>>变量1>>变量2>>变量3...;
()cout
格式为:
cout<<表达式;
cout<<表达式1<<表达式2<<表达式3...;
cout是不会自动换行的,必须手动输入换行符实现换行,有两种(目前不需要明确二者区别):
cout<<a<<'\n';
cout<<a<<endl;
endl稍慢,不过数据较小时不影响。
注意:数据规模达到10w时,cin和cout会跑不动。
输入时数据间用一个空格或回车分开。
浮点数控制小数点后位数:
```cpp
#include<iostream>
#include<iomanip>//控制位数函数需要调用的库
using namespace std;
int main(){double a;cin>>a;cout<<fixed<<setprecision(3)<<a;//格式如上,数字表示要保留的小数点数位数return 0;
}

三、scanf和printf
高能预警。
这是一对敲字最慢但是程序效果最好的输入输出。
格式控制符必须用""括起来,普通字符是输出时原样输出的字符。
\n是换行符,用于换行,可添加在格式控制符之后。
printf中,格式符之间可添加字符串。

#include<cstdio>
using namespace std;
int a,b,c,d,e;
char f,g,h,i;
long long j;
short k;
int l,m,n,o;
int main(){//以下代码仅展示格式符使用方式,后半部分scanf和printf使用的长得一样的格式符并非完全对应。scanf("%d",&a);//%d用于int型变量的输入,&表示“取地址”。scanf("%i",&b);//同上scanf("%u",&c);//u用于无符号十进制形式输入十进制整数scanf("%o",&d);//o用于输入八进制整数scanf("%x",&e);//x用于输入十六进制整数scanf("%c",&f);//c用于输入单个字符scanf("%s",&g);//s用于输入字符串(非空格开始,空格结束。字符串变量以'\0'结尾scanf("%f",&h);//f用于输入实数。scanf("%e",&i);//同上//以下为附加格式符scanf("%ld",&j);//长整型数("%ld" "%lo" "%lx"),double型数("%lf" "%le")scanf("%hd",&k);//h用于短整型数("%hd" "%ho" "%hx")scanf("%*d%d%d",&l,&m);//*表示对应的输入不赋给变量scanf("%3d",&n,&o);//加在这里的整数表示控制域宽//开始输出。printf("%d\n",&a);//d与i都是以带符号形式输出十进制整数,整数的正号省略。printf("%i\n",&b);printf("%u\n",&c);//u用于无符号十进制形式输出十进制整数printf("%o\n",&d);//o用于输出八进制整数,不输出前导符0printf("%x\n",&e);//x(或者X)用于输出十六进制整数,不输出前导符0xprintf("%c\n",&f);//c用于输出单个字符printf("%s\n",&g);//s用于输出字符串printf("%f\n",&h);//f用于小数形式输出单双精度,隐含6位小数,四舍五入。printf("%e\n",&i);//e或E用于指数形式输出单双精度,隐含六位小数。//以下为附加格式符printf("%g\n",&j);//g或G输出时小数尾数没有多余的0return 0;
}

打字好累,拍图偷懒。p2是s格式符。
在这里插入图片描述
在这里插入图片描述

  相关解决方案