const限定符 限定为常量不可更改
cout.setf()覆盖清零行为
cout默认打印6位小数
float只能表示六位或者七位有效数字
(int) char不会修改原来的值,而是会创建一个新的值 //新型的类型强制转换static_cast
new运算符可以避开生命数组的时候必须输入常亮的限制
字符串以\0作为结尾 strlen()不计算空字符
#include<iostream>
#include<cstring>
//using namespace std;
char a[] ="I love u!";
int main()
{
int i=0;
while(++i<2)
{
std::cout<<a<<std::endl;
std::cout<<std::strlen(a)<<std::endl;
std::cout<<sizeof(a)<<std::endl;
}
return 0;
}
cin>>当接收到空格 tab 和换行符号的时候会停止输入(使用getline()获取一行)
cin.getline(a,b).getline(b,c)拼接特性
使用cin一定要注意换行符号
c++新类型string 不能将数组赋值给另一个数组,但是可以将string赋值给另一个string(string最方便的是可以自动调整大小)
string之间可以互相加起来
strcpy(a,b)将b复制到1中
strcat(a,b)将b添加到a后面
类对象方法是str1.size() 常规函数方法是strlen(char*)
c++结构体中 声明结构体不需要再加struct
新型的结构体赋值方式
/*first.why = "eat";
first.how = 20.20;
first.time = 924;*/
first =
{
"eat",
20.20,
924,
};
可以定义结构体数组,下面的程序定义了包含两个结构体的结构体数组
#include<iostream>
#include<cstring>
using namespace std;
typedef struct money
{
string why;
double how;
long time;
} purse;
money first[2];
int main()
{
first[1].why = "drink";
first[1].how = 4.00;
first[1].time = 924;
first[0] = {
"eat",
20.20,
924,
};
cout <<"你用钱干了什么:"<< first[0].why << endl;
cout.setf(ios::fixed);
cout << "你花了多少钱:" << first[0].how <<endl;
cout << "你什么时候花钱的:" << first[0].time<<endl;
cout <<"你用钱干了什么:"<< first[1].why << endl;
cout.setf(ios::fixed);
cout << "你花了多少钱:" << first[1].how <<endl;
cout << "你什么时候花钱的:" << first[1].time;
return 0;
}
读取char的时候cin会无视输入的换行符号和空格‘’
可以用cin.get()来处理
函数重载:允许创建多个同名函数,但是他们的参数必须不同
重定向符号file1<file2
将file2内文件作为file1的输入
正确的输入方式应该为
cin.get(ch)
while(!cin.fail())
{
cin.get(ch);
}
可以更为精简
while(cin.get(ch))
{
...
}
cout.put(ch)=putchar()
cin.get(ch)=getchar()
cin.get(ch1).get(ch2)将接下来一个字符给ch1 将下下个字符给ch2