检查输入
cin会检查输入格式,输入与预期格式不符时,会返回false.
cout << "Enter numbers: ";
int sum = 0;
int input;
while (cin >> input)
sum += input;
cout << "Last value entered = " << input << endl;
cout << "Sum = " << sum << endl;
上面的检查可以放入try、catch语句中。
try{
while (cin >> input)
sum += input;
}catch(ios_base::failure &f){
cout<<f.what()<<endl;
}
字符串输入:getline()、get()、ignore()
getline()读取整行,读取指定数目的字符或遇到指定字符(默认换行符)时停止读取。
get()与getline()相同,接受参数也相同,均在读取到指定数目字符或换行符时停止读取。但get()将换行符停在输入流中,即下一个函数读到的首个字符将是换行符。
ignore()接受的参数也同getline(),忽略掉指定数目的字符或到换行符。
char input[Limit];
cout << "Enter a string for getline() processing:\n";
cin.getline(input, Limit, '#');
cout << "Here is your input:\n";
cout << input << "\nDone with phase 1\n";
char ch;
cin.get(ch);
cout << "The next input character is " << ch << endl;
if (ch != '\n')
cin.ignore(Limit, '\n'); // 忽略接此一行余下内容
cout << "Enter a string for get() processing:\n";
cin.get(input, Limit, '#');
cout << "Here is your input:\n";
cout << input << "\nDone with phase 2\n";
cin.get(ch);
cout << "The next input character is " << ch << endl;
例子中使用getline(),接下来的get()读到字符为3,忽略掉#;而get()之后,#在流中,所以读到字符为#。
read()
类似write()方法,读取指定数组字符。
char score[20];
cin.read(score,20);
putback()
putback()将一个字符插入到输入字符中,被插入的字符是下一条语句读到的第一个字符。
char ch;
while(cin.get(ch)) // terminates on EOF
{
if (ch != '#')
cout << ch;
else
{
cin.putback(ch); // reinsert character
break;
}
}
cin.get(ch);
cout << endl << ch << " is next input character.\n";
peek()
返回输入流中的下一个字符,但只查看不抽取。
char input[100];
char ch;
int i=0;
while((ch=cin.peek())!='.'&&ch!='\n')
cin.get(input[i++]);
input[i]='\0';
程序遇到句号或换行符循环停止。句点或换行符仍停留在输入流中。
可见,使用peek的效果相当于先用get()读取一个字符,再用putback()将字符放入输入流中。
*参考资料:《C++ Primer Plus 5nd》
分享到:
相关推荐
xp系统中利用dev-cpp进行编程,语句while(cin>>str),str是个string...cin.get() 还会对键盘上是否有作为流结束标志的 Ctrl+Z 或者 Ctrl+D 键按下作出检查,其检查的方式有两种:阻塞式以及非阻塞式。 阻塞式
C++ 中cin 输入流的多种函数用法.doc
C++中cin输入流的多种函数用法.doc
C++ 标准输入输出模块,为字符流操作提供了便捷的途径,软件开发当中,尤其是嵌入式系统开发当中,有时候需要把流信息重新定向到特定的端口,如串口,以太网,USB等。如标准输入输出cout, cin默认将字符流定向到...
#include #include using namespace std; int main() {float a,b,c,s; cout输入a,b,c的值";...cin>>a>>b>>c; s=(a+b+c)/2; if(a+b>c&&a+c>b&&b+c>a) cout(s*(s-a)*(s-b)*(s-c)); else cerr输入数据有误"; return 0; }
键盘输入与屏幕输出 C++中通过输入/输出流来实现标准输入/输出操作。 流是与I/O设备相关联的数据通信对象 输入操作通过流cin来实现 输出操作通过流cout来实现
C++ 输入 输出 格式 一:标准输入函数cin 不知道说它是个函数对还是不对,它是代表标准的输入设备--键盘。他是属于流的,他的用法和流的用法是一样的。也就是:cin>>变量; ..................
为了更好的学习c++的朋友,这里推荐一篇输入输出流部分的文档,其类容讲的深入透彻,利于学习。
标准输入流 cin 与标准输入设备相关联 标准输出流 cout 与标准输出设备相关联 非缓冲型标准出错流 cerr 与标准错误输出设备相关联(非缓冲方式) 缓冲型的标准出错流 clog 与标准错误输出设备相关联(缓冲方式) 在默认...
cin是C++编程语言中的标准输入流对象,即istream类的对象。cin主要用于从标准输入读取数据,这里的标准输入,指的是终端的键盘。此外,cout是流的对象,即ostream类的对象,cerr是标准错误输出流的对象,也是ostream...
介绍了 C++的 I/O( 输入输出 )问题,本文结构清晰,讲解简单易懂,对 C++ 的流模型作为细致...入部分,介绍了 cin 流,输入时的错误检测机制,及使用输入流类的成员函数进行输入的函数。最后详细介绍了文件的 输入输出
主要介绍了C++编程中用put输出单个字符和cin输入流的用法,是C++入门学习中的基础知识,需要的朋友可以参考下
cin代表标准输入设备,使用提取运算符 “>>” 从设备键盘取得数据,送到输入流对象cin中,然后送到内存。 cin是输入流,cout是输出流,重载了”>>”、”<<“运算符,包含在头文件中。 先把要输出的东西...
5.C++数据输入流对象cin和输出流对象cout的使用。 6.程序的3种基本结构 7.构造数据类型,如数组、结构体、指针等的定义方法、特点和使用方法。 7.函数的定义、调用及函数调用过程中的参数传递的机理和程序执行...
cin是C++编程语言中的标准输入流对象,即istream类的对象。cin主要用于从标准输入读取数据,这里的标准输入,指的是终端的键盘。此外,cout是流的对象,即ostream类的对象,cerr是标准错误输出流的对象,也是ostream...
C++ 基本的输入输出 C++ 标准库提供了一组丰富的输入/输出功能,我们将在后续的章节进行介绍。本章将讨论 C++ 编程中最基本和最常见的 I/O 操作。 C++ 的 I/O 发生在流中,流是字节序列。如果字节流是从设备(如...
4.3.1 标准输入流cin 65 4.3.2 标准输出流cout 66 4.3.3 输出流cerr和clog 68 4.4 格式控制函数 69 4.5 格式控制符 71 4.5.1 控制不同进制的输出 72 4.5.2 控制输出宽度 72 4.5.3 控制输出精度 73 4.6 顺序...
< iostream> 支持标准流cin、cout、cerr和clog的输入和输出,它还支持多字节字符标准流wcin、wcout、wcerr和wclog。 <iomanip> 提供操纵程序,允许改变流的状态,从而改变输出的格式。 <ios> 定义iostream的基类 ...
C++中提供了一套输入输出流类的对象,它们是**cin 、cout和cerr**,对应c语言中的三个文件指针stdin、stdout、stderr,分别指向终端输入、终端输出和标准出错输出(也从终端输出)。**cin与>>一起完成输入操作,...