首页 > 编程语言 > 详细

C++primerplus书摘1(第一到第四章)

时间:2019-07-13 00:28:43      阅读:111      评论:0      收藏:0      [点我收藏+]

 

1.getline() get()

下列程序输入输出为

3

3

cin不会丢弃换行符,会把换行符留在输入队列中,所以getline遇到换行符会把换行符替换成‘\0‘,

所以s是空串。

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<algorithm>
 5 using namespace std;
 6 int main()
 7 {
 8     string s;
 9     char a;
10     cin>>a;
11     cout<<a<<endl;
12     getline(cin,s);cout<<s;
13     return 0;//3 3
14 }


可以看到第二个getline前没有接受来自第一个getline后的换行符,仍可以正常正常输出,说明第一个getline丢弃了后面的换行符。

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<algorithm>
 5 using namespace std;
 6 int main()
 7 {
 8     string s;
 9     char a;
10     cin>>a;
11     cout<<a<<endl;
12     cin.get(a);//接受a后面的换行符
13     getline(cin,s);
14     getline(cin,s);
15     cout<<s;
16     return 0;
17 }


输入输出:

3

3

y

u

u

 

o

o

cin.get()不会丢弃换行符,而是将换行符保留着输入队列

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<algorithm>
 5 using namespace std;
 6 int main()
 7 {
 8     string s;
 9     char a;
10     cin>>a;
11     cout<<a<<endl;
12     cin.get(a);//吃掉cin后面的换行符
13     getline(cin,s);//输入s,丢掉最后面的黄海峰
14     cin.get(a);//接受一个新的字符
15     cout<<a<<endl;
16     cin.get(a);
17     cout<<a<<endl;
18     getline(cin,s);
19     cout<<s;
20     return 0;
21 }

结论:

1.getline(cin,s); /cin.getline();读取换行符,并将换行符替换成‘\0‘并丢弃换行符

2.cin 会把换行符留在输入队列中

3.cin.get(); 读取换行符并替换成‘\0‘,并不会主动丢弃换行符,会把它保留在输入队列中 

 

2.当且仅当数值不会为负时,才应使用无符号类型。unsigned

3.整数后面l/L表示long类型,u/U表示unsigned int常量,ul表示unsigned long常量。

4.const限定符 限定了声明的含义

如果在声明常量时没有提供值,则该常量的值将是不确定的,且无法修改。

const比#define好,1.它能够明确指定类型 2.可以使用C++的作用域规则将定义限制在特定的函数或文件中。

 

C++primerplus书摘1(第一到第四章)

原文:https://www.cnblogs.com/zuiaimiusi/p/11178526.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!