C语言的get是怎样使用的呢?

 我来答
小夏聊生活
高能答主

2019-12-09 · 专注于分享生活知识,热爱生活
小夏聊生活
采纳数:447 获赞数:114611

向TA提问 私信TA
展开全部

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;

}
































tattackor
推荐于2017-09-01 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:884万
展开全部

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、例程:

#include <stdio.h>
int main(){
    char buffer[5];//定义缓存字符数组buffer
    gets(buffer);//用gets函数从stdin流中读入字符串,因为buffer长度是5,输入不能超过4个字符
    printf("%s",buffer);//在stdout流中输出读入的字符串
    return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友f29cbda
2011-11-28
知道答主
回答量:26
采纳率:0%
帮助的人:18.2万
展开全部
getchar() 这个函数在调用之后 你输入s 再按回车键,这个时候键盘会给出两个值一个是0A 一个是0D 对应10进制就是 10 13,其作用分别为回车 换行。 回车 说白了,告诉系统这一行结束了,但是并不换到下一行,想要换行就用到换行了。

但是在你用getchar之后,s会被接收了,但是回车 换行被系统从键盘缓冲区清空了。你可以换一个函数 getch() 这个函数只读你s ,后面的回车还是被清空,但是换行都保留 你继续用 getch 可以把里面的数据读取出来,然后打印出来。

例子如下:
#include <stdio.h>
#include <conio.h>

int main(int argc, char *argv[])
{
char a = 0, b = 0;
a = getch();
b = getch();
printf("%d , %d",a,b);
return 0;
}

说明一下 getch 你输入之后,屏幕不会显示。你如果连续点击a 那么会得到两个97 。 如果点a,然后再回车,这个时候得到的是 97 13
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
isip_ty
2011-11-28 · TA获得超过436个赞
知道小有建树答主
回答量:212
采纳率:0%
帮助的人:284万
展开全部
不太明白你指的get是什么意思?是C语言对字符串或字符的操作函数getchar,gets等?还是你想问的是经过类封装的get()?
追问
题目是这样的:对输入一个字符串,统计此字符串中字母,数字,空格,和其它符号的个数
追答
给你一个大概的思路:
接收字符串,可以用scanf,接下来要统计字符串里的元素个数,首先必须获得字符串的长度,方便做循环用,字符串长度可以用strlen函数获取,接着在循环里分析每个字符,每循环一次从字符串里读取一个字符做判断(字符串就是数组,所以用处理数组的方式读),判断的时候可以转为相应的ASCII码,好处理一些!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式