1.gets
gets函数的头文件是,原型如下:
char *gets(char *s);
gets从stdin中读入一行内容到s指定的buffer中,当遇到换行符或EOF时读取结束。读取成功时,返回s地址;失败时返回null。需要注意的是,gets会将行末尾的’\n’字符或EOF替换成’\0’,这样,gets读取的内容中不包括’\n’字符。如果要获取读取字符串的长度,可以调用strlen函数获得。
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
char buff[100];
gets(buff);//gets头文件为cstdio
cout<<buff;
cout<<strlen(buff);//strlen 头文件为cstring
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
2.fgets
fgets函数的头文件是,原型如下:
char *fgets(char *s, int size, FILE*stream);
fgets从stream中读取最多size-1大小的内容到s指定的buffer中,当遇到换行符或EOF时读取结束。读取成功时,返回s地址;失败时返回null。需要注意的是,fgets会在所读取的内容后面添加’\0’,这样,fgets读取的内容中会包括行末尾的’\n’字符。如果要获取读取字符串的长度,可以调用strlen函数获得。
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
char buff[100];
fgets(buff,10,stdin);//fgets头文件为cstdio
cout<<buff;
cout<<strlen(buff);//strlen 头文件为cstring
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
3.getline
对于C++语言,如果使用C字符串的话,就采用cin.getline()函数,如果采用string型字符串的话,就采用全局函数getline(cin,n);
注意,这两个函数都不读入最后的换行符。
#include<string>
#include<iostream>
using namespace std;
int main( )
{
string s;
char str[256];
getline(cin, s);
cin.getline(str, sizeof(str));
cout<<s<<str;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18