首页 > 代码库 > getchar()、putchar()、gets()、puts()、cin.get()、cin.getline()、getline()

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,‘*‘);

getchar()、putchar()、gets()、puts()、cin.get()、cin.getline()、getline()