每日代码三百天 第二十五天
常量与变量
其值不能改变的量称为常量,一般的定义方法有:
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;
}