每日代码三百天 第二十五天

常量与变量
其值不能改变的量称为常量,一般的定义方法有:

const int a=34;
const float b=3.14;

C++规定标识符只能由字母,数字,下划线和美元符组成,且第一个字符必须是字母或下划线或美元符。

const是C++程序里的关键字,表示所定义的类型为常量,另一种方法为宏定义:

#define PRICE 34

整常量的特殊表示方法:
一个整常量后面加一个字母U或u,认为是unsigned int 型;
一个整常量后面加一个字母L或l,认为是long int 型;
一个整常量以数字0开头的数是八进制数;
一个整常量以0x开头的数是十六进制数;

字符与字符串
字符变量是用单撇号括起来的一个字符;
字符串常量是用一对双撇号括起来的字符序列;

'a'表示字符a;
"a"表示字符串'a''\0';
char a="a"是错误的
#include<iostream>
using namespace std;
int main(){
   
	char c1,c2;
	c1=65;
	c2=66;
	cout<<c1<<" "<<c2<<endl;
	cout<<int(c1)<<" "<<int(c2)<<endl;//强制类型转换
	return 0;
)
#include<iostream>
using namespace std;
int main(){
   
	char c1,c2;
	c1='a';
	c2='b';
	c1 -= 32;//小写转大写
	c2 -= 32;
	cout<<c1<<" "<<c2<<endl;
	return 0;
}

e.g:
凯撒加密术:
对于信件中的每一个字母,会用它后面的第t个字母代替。

//凯撒加密术
#include<iostream>
using namespace std;
int main()
{
   
	char c1='C',c2='h',c3='i',c4='n',c5='a';
	c1 += 4;
	c2 += 4;
	c3 += 4;
	c4 += 4;
	c5 += 4;//向后移动4个字母
	cout<<c1<<c2<<c3<<c4<<c5<<endl;
	return 0;
}

数据输入输出
C++的输入输出功能是由函数来实现的,例如putchar(输出字符);getchar(输入字符);cin(输入流);cout(输出流)等。

#include<iostream>
using namespace std;
int main()
{
   
	char c;
	c=getchar();
	putchar(c);
	return 0;
}
#include<iostream>
using namespace std;
int main()
{
   
	char a='a',b='b',c='c';
	putchar(a);
	putchar(b);
	putchar(c);
	return 0;
}
puts():向屏幕输出字符串并换行;
gets():从键盘中获取字符串,回车不算字符串。
#include<iostream>
using namespace std;
int main()
{
   
	int n=345;
	cout<<"十进制"<<dec<<n<<endl;
	cout<<"八进制"<<oct<<n<<endl;
	cout<<"十六进制"<<hex<<n<<endl;
	return 0;
}
使用 right或left 可以控制字符串向左或向右靠齐
cout<<left;

C++提供setw 操作符可以指定每个数值占用的宽度。使用头文件iomanip,setw操作符只对紧跟着它的数值有效,如果要为多个数值设定宽度,必须多次使用setw操作符。

#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
   
	double a=234.45;
	cout<<setw(10)<<1234567890<<endl;
	cout<<setw(4)<<a<<endl;
	cout<<setw(6)<<a<<endl;
	return 0;
}

C++提供的setprecision操作符可以控制浮点数的输出精度,其中的参数代表输出的浮点数的个数。为了使用该操作符,加头文件iomanip.

#include<iostream>
#include<iomanip>
using namespace std;

int main()
{
   
	double a=234.123457890;
	cout<<a<<endl;
	cout<<setprecision(4)<<a<<endl;
	cout<<setprecision(6)<<a<<endl;
	cout<<setprecision(8)<<a<<endl;
	cout<<setprecision(15)<<a<<endl;
	return 0;
}

单纯的使用setprecision()函数,并不能精确控制小数点后保留多少位,而是将整数与小数加起来的位数,如果仅仅控制小数点后的位数,加fixed()函数;

#include<iostream>
#include<iomanip>
using namespace std;

int main()
{
   
	double a=234.123457890;

	cout<<setprecision(6)<<<<fixed<<a<<endl;
	return 0;
}

C++提供了输入流cin,可以利用输入流cin读取键盘输入的字符和数字等。

#include<iostream>
using namespace std;
int main()
{
   
	int a,b,c;
	cout<<"a:";
	cin>>dec>>a;
	cout<<"b:";
	cin>>oct>>b;
	cout<<"c:";
	cin>>hex>>c;
	cout<<"a:"<<a<<endl;
	cout<<"b:"<<b<<endl;
	cout<<"c:"<<c<<endl;
	return 0;
}
//get成员函数的使用
#include<iostream>
using namespace std;
int main()
{
   
	char c;
	c=cin.get();
	cout<<"c:"<<c<<endl;
	cout<<"ASCII:"<<int(c)<<endl;
	return 0;
}

cin提供了getline 函数,其格式为:getline(字符串首地址,最大长度);用于将用户输入的字符串存放在“字符串首地址”指定的内存中,其最大长度不能超过“最大长度”指定的值。该函数的用处是可以读入一行带空格的字符串,当然gets()函数也能达到同样的效果。

#include<iostream>
using namespace std;
int main()
{
   
	char c[80];
	cin.getline(c,80);
	cout<<c<<endl;
	return 0;
}