- 1、gets( )
- 2、scanf( )
- 3、getline( )
- 4、getchar( )
- 5、 坑
头文件 #include
功能: 实现对字符串的输入,可接受空格、Tab(制表符)和回车,遇回车结束。
ps: 输入字符串不可以是char*类型和string,只能是字符数组如:char str[80]。也不能是整型数组如:int arr[80]。
示例:
#include2、scanf( )int main() { char str[80]={0}; gets(str); puts(str); return 0; }
头文件 #include
scanf不能接受空格、Tab和回车,所以遇到空格、Tab、回车都结束。但有意思的是,当遇到空格、Tab、回车会自动在字符串后面添加 ' ', 但是空格、Tab、回车仍会留在输入的缓冲区中。
ps: gets( )可接受回车之前输入的所有字符,并用 ' '代替n。回车键不会留在缓冲区。
#include3、getline( )int main() { char str[80]={0}; scanf("%s",str); printf("str=%sn",str); char ch; ch=getchar(); printf("ch=%c",ch); printf("over!!!"); return 0; }
是对string类型的整行读取,字符数组和char*都不行。
示例:
#include#include using namespace std; int main() { string str; getline(cin,str); cout< 4、getchar( ) 和前三个不同的是,getchar一次性只能接受一个字符。
#include5、 坑int main() { char ch; ch=getchar(); printf("%c",ch); } 由于scanf( )的回车会留在缓冲区,而gets( )和getline( )又能接受回车。所以在scanf( )与gets( )、getline( )之间一般会用getchar( )吃掉回车。
参考博客:https://blog.csdn.net/xingjiarong/article/details/47282817



