C++常见的几种输入格式
程序一般是通过键盘输入,屏幕输出。输入时,存在一个缓冲区,从键盘输入的数据会先存入缓冲区,利用cin从缓冲区读取数据。
头文件,命名空间为std。常见的cin应用方式:
- cin>>data
- cin.get()
- cin.getline(str,num,ch)
-
cin>>data
这种输入方式的一个特点是:根据data的数据类型从输入缓冲区读取数据,可以为int、float、char、char*(用char表示的字符串)、string等类型。输出结束是以[Tab]、[Space]、[Enter]为结束符,且不会保存到变量中 -
cin.get()
get()具有多种重载形式,其默认结束符为[Enter]。最重要的一点是,操作遇到结束符停止时,并不会将结束符从缓冲区丢弃。
(1) ch=cin.get()或者cin.get(ch):比较大的一个作用是可以舍弃缓冲区中不需要的字符(初始结束符)
从缓冲区接受一个字符,会从前往后读取输入缓冲区的第一个字符。
(2) cin.get(char* s,int size,char delim)
该重载会从缓冲区读入结束符delim之前的size=-1个字符,并自动在末尾加入’\0’,保存到字符数组中。但是结束符并不会从缓冲区中删除,会保存到下一次读取。
第一个为字符数组,用于存放从输入缓冲区读到的数据,第二个为字符串长度,最多可读取size-1个字符,因为还需要留一个位置给’\0’。结束符delim默认为[Enter]。 -
cin.getline(char* s,int size,char delim)
与cin.get(char* s,int size,char delim)类似,不同点在于,其结束符会被从缓冲区中提取出来并丢弃掉。不好的一点在于,输入字符串超出最大字符串数量,并没有遇到结束符时,会引起cin函数错误。
- geiline(cin,string,char ch):比较适合输入一串包含空格等未知长度的字符串,且使用string类型。
头文件,默认结束符为[Enter],且会自动将结束符提出来丢弃掉。这里当缓冲区字符串超长时,不会引起错误。