c++的输入流基础知识
cin是istream类的对象,它从标准输入设备获取数据,程序中的变量通过流提取符“>>”从流中提取数据。从流中提取数据时通常跳过输入流中的空白符
只有在输入完数据并按回车后,该行数据才被送入缓冲区形成输入流,提取符才能提取数据
除了直接使用cin>>提取数据外,还可以用istream类的成员函数(注意cin是Istream的对象,所以它也有这些函数)完成字符的输入
- get,读入一个字符
- 不带参数的调用:cin.get()
- 返回读入的值,若遇到文件结束符,则返回EOF
- 与C语言的getchar()功能相同
- 带一个参数的调用:cin.get(ch)。提取一个字符,并赋值给ch变量
-
- 若读取成功则返回true,反之(遇文件结束符)返回false
- 带参数的调用:cin.get(字符数组,字符个数n,终止字符)
-
- 读取n-1个字符到字符数组,然后填入 \0,如果在此前遇到终止字符,则提前结束
- 如果读取成功则返回true,反之(遇文件结束符)返回false
- 不带参数的调用:cin.get()
- getline,读入一行字符,用法与带参数的get方法类似
- cin.getline(字符数组,字符个数n,终止字符)
区别:cin.getline和getline
- getline
在<string>中,原型是:
istream& getline(istream &is , string& str , char delim);
返回的istream对象即为传入的is,所以下面的调用是合法的:
delim默认为'\n',遇到delim时,delim被抛弃,下次读取时从delim的下一个字符开始