getchar()、putchar()、gets()、puts()、cin.get()、cin.getline()、getline()
1.getchar:
原型为int getchar(void).
它从stdin里读取一个字符。返回值为用户输入的ASCⅡ码,出错返回-1。
eg:c=getchar().
2.putchar:
原型为unsigned int putchar(char).
在stdout上输出一个字符。当输出正确的时候,返回输出字符转换为的unsigned int 值;当输出错误的时候,返回 EOF(End of file)文件结束符,即-1。
eg:putchar(c).
3.gets:
原型为char* gets ( char* str ).
功能:从stdin流中读取字符串,直至接收到换行符或EOF时停止,并将读取的结果存放在str指针所指向的字符数组中。换行符不作为读取串的内容,读取的换行符被转换为‘\0’空字符,并由此来结束字符串。
返回值:读入成功,返回与参数buffer相同的指针;读入过程中遇到EOF(End-of-File)或发生错误,返回NULL指针。所以在遇到返回值为NULL的情况,要用ferror或feof函数检查是发生错误还是遇到EOF。
注意:此函数不检测堆栈溢出,溢出时会覆盖堆栈上不相关的数据,可用fgets(stdin)代替。
eg:gets(str).
4.puts:
原型为int puts(const char *string).
向标准输出设备写字符串并换行,其调用方式为,puts(s);其中s为字符数组或字符串。
注意:puts输出字符串时要遇到'\0’也就是字符结束符才停止。
eg:puts(str).
5.cin.get:
两种用法:
1)接收单个字符:eg:cin.get(c); <=> c=cin.get().
2)接收字符串:eg:cin.get(s,n); 其中,s为字符数组或字符串,n为此字符串的长度-1,自动把第n位赋值为'\0'。
6.cin.getline:
cin.getline(char* str,int N,char f);其中,char f可以缺省为'\n'。
此函数会一次读取多个字符(包括空白字符)。它以str为存放第一个读取的字符的位置,依次向后存放读取的字符,直到读满N-1个,或者遇到指定的结束符f为止。若不指定结束符,则默认结束符为'\n'。
eg:getline(s,10,'*');
7.getline:
istream& getline ( istream &is , string &str , char delim );
istream& getline ( istream& , string& );
将输入流is(一般为cin)中读到的字符存入str中,直到遇到终结符delim才结束。对于第一个函数delim是可以由用户自己定义的终结符;对于第二个函数delim默认为 '\n'(换行符)。
函数在输入流is中遇到文件结束符(EOF)或者在读入字符的过程中遇到错误都会结束。
在遇到终结符delim后,delim会被丢弃,不存入str中。在下次读入操作时,将在delim的下个字符开始读入。
eg:getline(cin,s,'*');