cin
是 C++ 标准库中用于从标准输入流(通常是键盘)读取用户输入的对象。
它是 istream
类的对象,提供了一种方便的方式来接收用户的输入,并将其存储为程序中的变量。使用 cin
需要包含 <iostream>
头文件。以下是 cin
的基本用法和一些重要细节:
使用原始的cin在进行输入的时候是省略空格和回车的。
样例1:用cin输入单个字符(可以是char,int 或者是double类型的)
#include<iostream>
using namespace std;
int main(){
char ch;
int count = 0;
cout<<"Enter characters; enter # to quit:"<<endl;
cin>>ch;
while(ch != '#')
{
cout<<ch;
count++;
cin>>ch;
}
cout<<endl<<count<<"characters read"<<endl;
return 0;
}
运行结果如下:
cin只读取到了9个字符信息,在显示的时候也只显示了除空格外的字符,这意味着空格是不被读取的;
发送给cin的输入将会被缓冲,这意味着只有在用户按下回车键后,他输入的内容才会被发送给程序。
样例2:cin.get(char)每次输入一个字符
#include<iostream>
using namespace std;
int main(){
char ch;
int count = 0;
cout<<"Enter characters; enter # to quit:"<<endl;
cin.get(ch);
while(ch != '#')
{
cout<<ch;
count++;
cin.get(ch);
}
cout<<endl<<count<<"characters read"<<endl;
return 0;
}
运行结果如下:
cin.get()将输入的所有字符都显示了;
样例3:getline(cin,string)是针对string ;从标准输入流(通常是键盘)读取一行字符串,并返回一个 string
类型的对象,其中包含读取的字符串。
#include <iostream>
#include <cstring>
using namespace std;
int main() {
string a;
int num = 0;
cout<<"Enter words (to tstop, type the word done):\n";
//对char类型的字符串来说
//cin>>a是能够正常输入的,但是在遇到空格,换行以及制表符之后就会停止
//cin.getline(a,lenght)能够输入一个完整的句子
//但是题目里要求的是一段包含空格的句子,所以应该用cin
while(getline(cin,a) && a != "done")
{
num++;
}
cout<<num<<endl;
return 0;
}
运行结果如下所示:
getline(cin,a)本身就能当作判断条件,你可以理解为如果输入是正确的就返回一个true,反之则返回一个false;
cin也是这样子的
int temp;
cin>>temp; //如果你在这边输入一个字符的话,cin就会返回一个false;
样例4: cin.getline(array,lenght)
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char a[50];
int num = 0;
cout<<"Enter words (to tstop, type the word done):\n";
//对char类型的字符串来说
//cin>>a是能够正常输入的,但是在遇到空格,换行以及制表符之后就会停止
//cin.getline(a,lenght)能够输入一个完整的句子
//但是题目里要求的是一段包含空格的句子,所以应该用cin
//strcmp(a,b)表示比较字符串a和b ,如果相等则返回0
while(cin.getline(a,50) && strcmp(a,"done")!=0)
{
num++;
}
cout<<num<<endl;
return 0;
}
运行结果和上面是一样的,但是一个用的是a != "done" 一个用的是strcmp()是因为string类中重载了 "=="号;