C++补漏_标准输入流
1.cin对象
cin是标准输入流(即istream类)的对象,用于从标准输入流中读取数据。标准输入就是从键盘终端输入,当我们从键盘敲入一些数据,按下回车后数据被送入标准输入缓冲区,
回车会被转换为换行符(/n)保存在缓冲区中。
cin读取数据是从缓冲区中读取,缓冲区为空时cin会停止等待输入。
2.cin的三个读取方法
1) cin>>
cin>>以空格,tab,换行作为分隔符。使用cin>>读取数据时,若缓冲区的第一个字符是空格,tab,换行等分隔符,将其清除并忽略。读取成功后,对其后残留的分隔符不做
处理(所以将cin>>和其他输入方式混用时可能会出现错误,例如和getline()函数混用。)
2) cin.get方法
使用cin.get方法读取单个字符有两种形式:char a=cin.get();或char a;cin.get(a);。使用cin.get方法从缓冲区读入数据时不会忽略分隔符,分隔符会以字符的形式被读取
出来。
3)cin.getline方法
cin.getlint方法用于从标准输入流中读入一行数据。默认以换行符作为结束标志(char str[20]={null};cin.getline(str,20);),也可以指定结束标志(char str[20]={null};
cin.getline(str,20,'$');)。需要指出当输入超长时,cin.getline会报错以致其后的cin都不能执行。这是可以用cin.clear()来将cin的状态为复位。cin.getline会将结束符
清除,但是不会读入。
3.getline方法
getline方法不属于标准输入流,需要加入#include<string>。使用形式和cin.getline相似:string str;getline(cin,str);或string str;getline(cin,str,'$');
getline遇到结束符时就结束,那怕结束符是第一个字符。getline会将结束符转换为空字符读入并清除缓冲区中的结束符。
4.cin.sync()
cin.sync()函数的作用是清空缓冲区,在cin>>后使用getline()时需要用它。但是在linux中似乎需要用cin.ignore(),cin.sync()不可用。
5.我这里介绍的很简略,很多东西都没记录。但是通常情况下使用以上方法就足够满足基本的输入需求了。
1.cin对象
cin是标准输入流(即istream类)的对象,用于从标准输入流中读取数据。标准输入就是从键盘终端输入,当我们从键盘敲入一些数据,按下回车后数据被送入标准输入缓冲区,
回车会被转换为换行符(/n)保存在缓冲区中。
cin读取数据是从缓冲区中读取,缓冲区为空时cin会停止等待输入。
2.cin的三个读取方法
1) cin>>
cin>>以空格,tab,换行作为分隔符。使用cin>>读取数据时,若缓冲区的第一个字符是空格,tab,换行等分隔符,将其清除并忽略。读取成功后,对其后残留的分隔符不做
处理(所以将cin>>和其他输入方式混用时可能会出现错误,例如和getline()函数混用。)
2) cin.get方法
使用cin.get方法读取单个字符有两种形式:char a=cin.get();或char a;cin.get(a);。使用cin.get方法从缓冲区读入数据时不会忽略分隔符,分隔符会以字符的形式被读取
出来。
3)cin.getline方法
cin.getlint方法用于从标准输入流中读入一行数据。默认以换行符作为结束标志(char str[20]={null};cin.getline(str,20);),也可以指定结束标志(char str[20]={null};
cin.getline(str,20,'$');)。需要指出当输入超长时,cin.getline会报错以致其后的cin都不能执行。这是可以用cin.clear()来将cin的状态为复位。cin.getline会将结束符
清除,但是不会读入。
3.getline方法
getline方法不属于标准输入流,需要加入#include<string>。使用形式和cin.getline相似:string str;getline(cin,str);或string str;getline(cin,str,'$');
getline遇到结束符时就结束,那怕结束符是第一个字符。getline会将结束符转换为空字符读入并清除缓冲区中的结束符。
4.cin.sync()
cin.sync()函数的作用是清空缓冲区,在cin>>后使用getline()时需要用它。但是在linux中似乎需要用cin.ignore(),cin.sync()不可用。
5.我这里介绍的很简略,很多东西都没记录。但是通常情况下使用以上方法就足够满足基本的输入需求了。