c++字符串、数字等类型用空格分开混合输入的方式,以及按精度(小数点位数)输出
当个笔记吧,老是忘记,而且最近一直在忙找工作,笔试的时候可能用的到。
1、输入数据类型(int、double、float等)
#include <iostream>
using namespace std;
int main()
{
int i;
double j;
float k;
cin >> i >> j >> k;
}
2、输入为字符串(char []、string)
void Input(){
char a[50]; // 最大长度为50,输入的时候不能超过,不足的话用“\0”填充
string s1;
// 这里遇到输入的字符串中有“空格”、“回车”、“Tab”, 都会停止输入
cin >> a;
cin >> s1;
}
这里举个栗子:
char a[10];
cin >> a;
cout << "a = " << a << endl;
string s1;
cin >> s1;
cout << s1 << endl;
char a[20];
string s1;
cin >> a >> s1; // 其实这就是两中不同类型的字符串的混合输入,看下面他的输出
cout << ”第一个字符串a= “ << a << endl << "第二个字符串s1= " << s1 << endl;
遇到空格等特殊字符,会换一个变量传值,再举一个混合输入的栗子,体会一下
int score;
string studentnum;
string name;
cin >> name >> studentnum >> score;// 一定要按这种格式的输入
cout << score << studentnum << name << endl;
3、cin.get()这个函数也可以用来输入
char a;
a = cin.get(); // 若输入:xiao hei
cout << a << endl; // 则输出:x,可任意看出只能用来接收一个字符
char b[10];
cin.get(b, 10); // 若输入:xiao hei,这种方式,最多输入9个字符,加上“\0”刚好10个
cout << b << endl; // 则输出:xiao hei,可输入字符串,会把空格等特殊字符也当作变量的一个字符
4、cin.getline()这个函数可以用来接收一个字符串,尽管字符串中含有空格等特殊字符,
这个与上面的get()函数接收字符串有点类似。其实getline这个函数有三个形参。第一个为字符串名,第二个字符串最大长度,第三个为终止输入的特殊字符。若下面的getline(s1, 10),改为getline(s1, 10, ‘a’),则输出的的是:xi
char a[10];
cin.getline(a, 10);
cout << a << endl;
5、上面的是针对char类型,对于string类型,也可以用getline()函数,但是该函数不属于输入流的成员函数,属于string成员函数
string s1;
getline(cin, s1);
cout << s1 << endl;
暂时用的比较多就是这几种了,如果遇到了还会继续添加。下面看下对单(双)精度浮点数,固定小数点位数输出,这些都是小问题,我觉得该记还是得记。
1、precision()函数和fixed一起用
double pi = 3.141592654;
cout.precision(5); // 控制小数点后五位
cout << fixed << pi << endl; // 输出为:3.14159
2、采用格式控制函数setpricesion()和fixed一起用
double pi = 3.141592654;
cout << setprecision(3) << fixed << pi << endl; // 输出为:3.142