文章目录 
 1、scanf 2、fgets() 3、cin 4、cin.getline() 5、getline()  
 
scanf只能读入不带空格的字符串,遇到空格则结束。 scanf只能读入字符数组,不能读入string。 scanf在读入的时候,会自动在字符串的末尾加上’\0’。 定义字符数组长度时,一定要考虑’\0’,'\0’也需要占位置。 # include <iostream> # include <cstring> using  namespace  std; 
int  main ( ) 
{ 
	char  a[ 100 ] ; 
	scanf ( "%s" , a) ; 
	printf ( "%s\n" , a) ; 
	return  0 ; 
} 
输入:asdf
输出:asdf 
基本语法: fgets能读入带空格的字符数组。 fgets在用键盘读入时,会保留换行。 字符数组的大小,一定要为’\n’和’\0’留位置。 # include <iostream> # include <cstring> using  namespace  std; 
int  main ( ) 
{ 
	char  a[ 100 ] ; 
	fgets ( a, 4 , stdin ) ; 
	for ( int  i= 0 ;  a[ i] != '\0' ;  i++ ) 
		cout<< ( int ) a[ i] << " " ; 
	return  0 ; 
} 
输入:ab
输出:97  98  10 
由此可见:
fgets ( a, 4 , stdin ) ,存4 个字符,分别为:ab'\n' '\0' 
cin既能读入字符数组也能读入string cin在读入的时候,会自动在字符串的末尾加上’\0’ cin只能读入不带空格的字符串,遇到空格则结束。 # include <iostream> # include <cstring> using  namespace  std; 
int  main ( ) 
{ 
	string a; 
	cin>> a; 
	cout<< a;  
	return  0 ; 
} 
输入:abc
输出:abc
# include <iostream> # include <cstring> using  namespace  std; 
int  main ( ) 
{ 
	char  a[ 100 ] ; 
	cin>> a; 
	cout<< a;  
	return  0 ; 
} 
输入:abc
输出:abc
cin. getline ( char  buf[ ] ,  int  bufSize) ; 
能读入带空格的字符数组 读入的时候,自动添加’\0’ ,数组的大小要为’\0’留位置 # include <iostream> # include <cstring> using  namespace  std; 
int  main ( ) 
{ 
	char  a[ 100 ] ; 
	cin. getline ( a, 5 ) ; 
	cout<< a; 
	return  0 ; 
} 
输入:a xx
输出:a xx
读入带空格的string 字符串的结束标志为’\0’ # include <iostream> # include <cstring> using  namespace  std; 
int  main ( ) 
{ 
	string s; 
	getline ( cin, s) ; 
	cout<< s; 
} 
输入:a bc
输出:a bc