在执行读取操作的时候,使用cin>>str;string对象会自动忽略开头的空白,并从第一个真正的字符开始读取,直到遇见下一个空白,但是getline(cin,str)函数不会忽略空白,而是自动读取一行的所有值,直到换行符出现,并且将换行符也读入了,然后把所读去的内容存到string对象去(注意不存在换行符)
#include <iostream>
#include <string>
using namespace std;
int main()
{
string s1,s2;
getline(cin,s1);//从标准输入读取" abc def "
cin>>s2;//从标准输入读" abc def "
cout<<s1<<endl; //输出: abc def
cout<<s2<<endl; //输出:abc
}
符号类型对比较的影响:
#include <iostream>
using namespace std;
int main()
{
int n = -1;
unsigned int a = 123;
if(a<n)
cout<<"hello"<<endl;//输出hello
else
cout<<"1111"<<endl;//
unsigned long long b = 17345678901234567890;
if(b<n)
cout<<"hello"<<endl;//输出hello
else
cout<<"1111"<<endl;
return 0;
}
以上的地方,由于n是有符号整形,a,b都是无符号类型,在进行比较的时候,n会自动的转换为一个比较大的无符号值。