gets函数:从stdin流中读取字符串,直至读到换行符或EOF时停止,并将读取的结果存放在buffer指针所指向的字符数组中。
换行符不作为读取串的内容,读取的换行符被转换为 \0 空字符,并以此结束字符串;当使用unicode宽字符文本时,请使用宽字符版本函数 _getws()。
gets函数可以无限读取,不会判断上限,所以使用时应确保buffer的空间足够大,以便在执行读取操作时不发生溢出。
gets函数在C11标准中被移除,改为更加安全的gets_s函数;头文件:stdio.h;返回值:若读入成功,返回与参数buffer相同的字符指针。
若读入过程中遇到EOF或发生错误,返回NULL指针。所以当遇到返回值为NULL的情况时,应使用ferror或feof函数检查是发生错误还是遇到EOF。
扩展资料
#include <iostream>
#include <limits>
#include <cstdio>
using namespace std;
int main()
{
int i_test, c;
printf("Please enter an integer: ");
scanf("%d", &i_test);
printf("You just entered %d.\nPress enter to continue...", i_test);
while ( (c = getchar()) != '\n' && c != EOF ) ; // 清空输入流
clearerr(stdin); // 清除流的错误标记
cin.get(); // 等待用户输入回车
return 0;
}
1、gets函数:
原型:char * gets(char * buffer);
功能:从stdin流中读取字符串,直至读到换行符或EOF时停止,并将读取的结果存放在buffer指针所指向的字符数组中。换行符不作为读取串的内容,读取的换行符被转换为 \0 空字符,并以此结束字符串;
说明:当使用unicode宽字符文本时,请使用宽字符版本函数 _getws()。gets函数可以无限读取,不会判断上限,所以使用时应确保buffer的空间足够大,以便在执行读取操作时不发生溢出。gets函数在C11标准中被移除,改为更加安全的gets_s函数;
头文件:stdio.h;
返回值:若读入成功,返回与参数buffer相同的字符指针。若读入过程中遇到EOF或发生错误,返回NULL指针。所以当遇到返回值为NULL的情况时,应使用ferror或feof函数检查是发生错误还是遇到EOF。
2、例程:
题目是这样的:对输入一个字符串,统计此字符串中字母,数字,空格,和其它符号的个数
追答给你一个大概的思路:
接收字符串,可以用scanf,接下来要统计字符串里的元素个数,首先必须获得字符串的长度,方便做循环用,字符串长度可以用strlen函数获取,接着在循环里分析每个字符,每循环一次从字符串里读取一个字符做判断(字符串就是数组,所以用处理数组的方式读),判断的时候可以转为相应的ASCII码,好处理一些!