1.把十进制变成其他进制
可以使用常用输出格式控制符。包括endl,ends,dec,hex,oct,setfill(char c),setprecision(int n),setw(int n)等等符号
下面为一个进制转换的代码实例:
#include<iostream>
#include<iomanip>
using namespace std;
void display(int & rk)
{
cout << dec << " " << rk << oct << " " << rk << hex << " " << rk << endl;
}
int main()
{
int m = 1;
cout << "十进制" << '\t' << "八进制" << '\t' << "十六进制" << endl;
do
{
display(m);
m++;
} while (m <= 256);
}
2.把大写字母变成小写字母
#include<iostream>
using namespace std;
int main()
{
char ch;
cout << "ch=";
cin >> ch;
if (ch >= 'A' && ch <= 'Z')
ch += 32;
cout << ch << endl;
}
3.把二进制数转化为十进制;
#include<iostream>
using namespace std;
int main()
{
int Dec = 0;
char ch;
cout << "Binary=";
do
{
cin.get(ch);
} while (ch != '0' && ch != '1');
do {
Dec += ch - '0';
cin.get(ch);
if (ch == '0' || ch == '1')
Dec *= 2;
} while (ch == '0' || ch == '1');
cout << "Decimal=" << Dec << '\n';
}
4.内存管理,主要主要new,delete等问题
#include<iostream>
using namespace std;
typedef struct node {
double data;
node* next;
}BTNode;
int main()
{
//只要是指针变量就是占四个字节空间
BTNode* p;
cout << sizeof(p) << endl;//输出为4,定义指针变量时,已经为该指针变量分配了空间
//p=new BTNode; 只有动态分配空间才可以对指针p进行操作
//动态分配了空间就是让指针指向了另一片地址,然后该指针变量的data等存储在该内存里面
p = new BTNode;
cout << sizeof(p) << endl;//输出为4
cout << sizeof(p->data) << endl;//输出为8,new的作用就是为p->data分配空间
BTNode a[3];//如果是定义结构体数组,那么本身就为p[i]->data分配了空间
cout << sizeof(a) << endl;//输出为48
cout << sizeof(a[0].data) << endl;//输出为8
BTNode* q = new BTNode[0];
cout << sizeof(q) << endl;//输出为4
cout << sizeof(q[0].data) << endl;//输出为8
cin >> p->data;//使用了未初始化的局部变量,所以编译不成功
cout << p->data << endl;
BTNode* p1;
p1 = new BTNode;
BTNode* p2 = p1;
cin >> p2->data;//编译成功
cout << p2->data;
//结论:对于指针变量,必须动态分配空间对其进行初始化,或者其他方式(赋值等)不然无法编译成功
int* p3;
int b;
cout << b << endl;//为什么a不能输出,但是下面的p3可以输出
p3 = &b;
cout << *p3 << endl;
cout << p3 << endl;
int* p5;
cout << p5 << endl;//无法编译,未初始化
int* p4;
p4 = new int;
cout << p4 << endl;
cout << *p4 << endl;
}