上QQ阅读APP看书,第一时间看更新
1.4 输入/输出及格式控制
扫码看视频
getchar()函数(字符输入函数)的作用是从终端(键盘)获取输入的字符。
putchar()函数(字符输出函数)的作用是向终端(显示器)输出字符。例如下面的程序在运行时,如果用键盘输入字符后按Enter键,显示器上就会输出该字符。
1 //getchar()函数和putchar()函数的使用演示
2 #include <bits/stdc++.h>
3 using namespace std;
4
5 int main()
6 {
7 char c;
8 c=getchar(); //输入字符赋值给c
9 putchar(c); //输出字符变量c
10 return 0;
11 }
cin读取一行字符串时,遇到空格就会停止。如果读取一行包含空格符的字符串,可以使用getline()函数。例如将“I am here”赋值给string类的例程如下所示。
1 //使用getline()函数读取string类字符串
2 #include <bits/stdc++.h>
3 using namespace std;
4
5 int main()
6 {
7 string str; //string类可用getline()函数读取
8 getline(cin,str); //读取一行包含空格符的字符串赋值给str
9 cout<<str;
10 return 0;
11 }
某些情况下,程序需要以八进制数或十六进制数的形式输出结果。C++提供了简单的实现方法:只要在输出流中输出dec(对应十进制)、oct(对应八进制)或hex(对应十六进制)即可。下面的程序演示了不同进制数之间的相互转换。
1 //进制转换
2 #include <bits/stdc++.h>
3 using namespace std;
4
5 int main()
6 {
7 int n=314;
8 cout<<"十进制:"<<dec<<n<<endl; //n本身为十进制数,所以可省略dec
9 cout<<"八进制:"<<oct<<n<<endl;
10 cout<<"十六进制:"<<hex<<n<<endl;
11 cin>>oct>>n; //输入八进制形式的n值
12 cout<<dec<<n; //转换为十进制形式的n值输出
13 return 0;
14 }
C++提供的setprecision()函数可以控制浮点数的输出精度,其中的参数代表输出的位数。试分析以下程序的执行结果。
1 //setprecision()函数的使用
2 #include <bits/stdc++.h>
3 using namespace std;
4
5 int main()
6 {
7 double a=234.1234567890;
8 cout<<a<<endl;
9 cout<<setprecision(4)<<a<<endl;
10 cout<<setprecision(5)<<a<<endl;
11 cout<<setprecision(6)<<a<<endl;
12 cout<<setprecision(7)<<a<<endl;
13 cout<<setprecision(8)<<a<<endl;
14 cout<<setprecision(9)<<a<<endl;
15 cout<<setprecision(15)<<a<<endl;
16 return 0;
17 }
输出结果如图1.22所示。
图1.22
可见,单纯使用setprecision()函数,控制输出的位数是整数部分与小数部分相加的位数,如果想真正精确地控制小数点后的位数,需添加fixed()函数,见以下程序。
1 //fixed()函数的使用
2 #include <bits/stdc++.h>
3 using namespace std;
4
5 int main()
6 {
7 float a=111.2345678;
8 cout<<setprecision(5)<<fixed<<a<<endl; //输出111.23457,有误差
9 return 0;
10 }
1.4.1 精确到小数点(fixed)
【题目描述】
输入一个双精度浮点数,保留其小数点后5位输出。例如输入1.23,输出1.230 00。
【输入格式】
输入一个双精度浮点数。
【输出格式】
将输入的双精度浮点数保留其小数点后5位输出。
【输入样例】
1.0
【输出样例】
1.00000