1.endl等对于cout来说有特殊含义的特殊符号被称为控制符;
2.面向对象编程(OOP);
3.一些关键字:
| auto | break | case | char | const | continue | default | do | double | else |
| enum | extern | float | for | int | inline | if | goto | long | register |
| return | short | signed | struct | static | sizeof | switch | typedef | unsigned | union |
| volatile | while | void |
4.C++命名规则:① 在名称中只能使用字母字符、数字、下划线;② 第一个字符不能是数字;③ 区分大小写;④ 不能使用C++关键字;⑤ 以两个下划线或下划线和字母开头的名称被保留给实现(编译器及其使用的资源)使用,以一个下划线开头的名称被保留给实现,用作全局标识符;⑥ C++对于名称的长度没有限制,但有些平台有限制。
5.提醒自己:养成命名的一致性,整体性;
6. <climits> 定义了各种限制的符号名称;如INT_MAX、CHAR_BIT 课本P41(待补充)
7.新的初始化语法:int wrens(432);
int a={24};
int a{24};
int a{}; //这种情况下,a将被初始化为0
8.
int ch;//为了和EOF比较,最好不定义为char
int cnt=0;
while ((ch=cin.get())!=EOF) {
cout.put(char(ch));
cnt++;
}
cout<<endl<<cnt<<" characters read\n";9.
int i=020,j=04; cout<<i+j<<endl; //输出20 cout<<i&j<<endl; //编译时报错!注意运算符的优先级
10.cin使用空白(空格、制表符和换行符)来确定字符串的结束位置,(面向单词);
面向行(结束符:换行符):getline()丢弃换行符
get() 保留换行符
#include<iostream>
using namespace std;
int main(){
char ch1[10],ch2[10];
cin.getline(ch1,10);
cin.getline(ch2,10);
cout<<ch1<<endl<<ch2;
} 思考以上程序,如果第一行输入15个字符会怎么输出?为什么?
如果输入行包含的字符数比指定的多,getline()和get()将把余下的字符留在输入队列中,而getline()会设置失效位,并关闭后面的输入;但可以用cin.clear()命令来恢复输入;
cin.get()不丢弃换行符,实现连续输入两行可以采用下述方法:
cin.get(ch1,10); cin.get(); cin.get(ch2,10); //可以写成: cin.get(ch1,10).get(); cin.get(ch2,10);
11.
cin>>year; cin.getline(adr,80);
cin读取年份之后,将回车生成的换行符留在了输入列中,所以用户根本没有输入地址的机会。
解决:
cin>>year; cin.get(); //也可以将调用合并 (cin>>year).get(); cin.getline(...);
12.string类 string str1,str2="abc",str3="def";
赋值:str1=str2;
运算符合并:str1=str2+str3;
str2+=str3;
计算长度:int len1=str2.size(); (str2是一个对象,而size()是一个类方法)
将一行输入读取到string中:getline(cin,str1);
13.结构
struct myst{
string str;
int num;
};
int main(){
myst a1,a2;
a2={
"hhq",
15
};
a1=a2;
cout<<a1.num;
}发现可以将结构赋给另一个同类型的结构
14.int * 是一种符合类型,是指向int 的指针;
15.一定要在对指针应用解除引用运算符*之前,将指针初始化为一个确定的、适当的地址;
16.new和delete
int *p=new int[10]; delete [] p;
17. 对数组用sizeof得到数组长度,而对指针用则得到指针的长度;
18. 数组名->第一个元素的地址
对数组名应用&->整个数组的地址
short tell[10]; cout<<tell<<endl; //tell是一个2字节内存块地址 cout<<&tell<<endl; //&tell是一个20字节内存块地址
19.
char ch[10]="innocent"; char *p; p=ch; cout<<p<<" address: "<<(int *)p; //(int *)p 显示为该字符串的地址
20. 创建动态结构时,不能使用成员运算符句点;
21. C++中允许为函数提供默认参数,又名缺省参数
22.获取系统的当前时间
void showCurTime(){
const char *wday[7]={"星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日" };
time_t ptime;
struct tm *p;
time(&ptime); //获取当前日期和时间
p=localtime(&ptime); //取得当地时间
cout << "当前日期、时间 : " << p->tm_year+1900 << "." << p->tm_mon+1 << "." << p->tm_mday;
cout << " <" << wday[p->tm_wday] << "> ";
cout << p->tm_hour << ":" << p->tm_min << ":" << p->tm_sec << endl;
}23.
#include<cmath.h> int a = 1, b = 2; int f = abs(a-b);

0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复