文章目录
1、scanf 2、fgets() 3、cin 4、cin.getline() 5、getline()
1、scanf
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
2、fgets()
基本语法: 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'
3、cin
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
4、cin.getline()
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
5、getline()
读入带空格的string 字符串的结束标志为’\0’
# include <iostream>
# include <cstring>
using namespace std;
int main ( )
{
string s;
getline ( cin, s) ;
cout<< s;
}
输入:a bc
输出:a bc