1、cin和cout的使用
cout.put()用来显示一个字符。
每次读取一行字符串输入
(1)面向行的输入:getline()
getline()读入一行,直到遇到换行符才结束,字符中间可以有空格。
输入字符数组和字符串的不同:
char name[10];
string grade;
cin.getline(name, 10);
getline(cin, grade);
()面向行的输入:get()
它和getline()的不同是get()遇到换行符不会丢弃,而是留给下一个需要输入的字符。从而会导致下一行的提示无法输入的问题。
2、string类简介
注意:
头文件cstring是C语言的形式,提供strcpy()和strcat()等函数
而头文件#include<string>才是提供string类的
CString是MFC的类
string类可以赋值,拼接和相加。而char是不可以的。char需要使用cstring中的strcpy()函数等
3、使用new来分配内存
int *p = new int
new操作符的作用:为XX数据类型(int型)分配内存,new将找到一个长度合适的内存块,并返回该内存块的地址给p
使用new要相应的使用delete来释放分配的内存空间
注意:
int *ps = new int;
int *pq = ps;
delete ps;
上面的代码是错误的,它创建了两个指向同一个内存块的指针。因为delete释放了内存块之后,另一个就变成了野指针。当然更不能delete ps 和 delete pq
这样会释放同一块内存两次。
4、未初始化的指针不能使用
char *p;
(1)cout<<p<<endl;
未初始化的指针无法控制它将如何使用。故错误
(2)cin>>p;
p未被初始化,不知道信息存储在哪里。若是这样操作可能会改写内存中的信息。
char animal[20] = "bear";
法一:
将p指向字符串animal
p = animal;
法二:
开辟一块内存空间,然后将animal复制到里面
p = new char[strlen(animal) + 1];
strcpy(p, animal);