char ch;
循环执行的cin>>ch;
输入:input abc
打印输入,其结果为:inputabc
输入流存放的内容是:input\0\0abc\n;cin会读取一个非空白字符(空格、回车、制表符)输入到ch,然后打印出来,如果输入缓存还有字符,执行cin>>ch,会继续读下一个非空白字符,遇到\0读下一个,遇到\n符则停止。
#include <iostream>
#include <ctype.h>
#include <string>
using namespace std;
int main()
{
char input;
cin>>input;
while(input!='@')
{
cout<<input;
cin>>input;
}
return 0;
}
输入:input abc
输出:inputabc_(输入符号停在c后面)
cin.get(ch);
基本和cin>>ch一样,但是遇到回车\n时,先打印火车后结束当前输入流。
int main()
{
char input;
cin.get(input);
while(input!='@')
{
cout<<input;
cin.get(input);
}
return 0;
}
输入:input(空格)abc
输出:
input(空格)abc
_(输入符号下一行行首,说明输入行的回车符号被打印出来了)。
用下面的代码加以验证:
int main()
{
char input;
cin.get(input);
while(input!='@')
{
if(!isalpha(input))
{
cout<<"space"<<endl;
}
cin.get(input);
}
return 0;
}
输入:(空格)i(空格)n(空格)t(回车)
输出:
space
space
space
space
_(输入符在第五行)
打印了四个space
简单的说cin.get会读完输入行的每一个字符
cin.getline(array,arraysize)
读取一行