0
点赞
收藏
分享

微信扫一扫

Matlab|改进的粒子群算法优化支持向量机(多分类)

陈情雅雅 2023-07-05 阅读 73
缓存

在这里插入图片描述

🎬 鸽芷咕:个人主页

 🔥 个人专栏:《快速入门C语言》《C语言初阶篇》

⛺️生活的理想,就是为了理想的生活!

文章目录

前言

💬 getchar( )的用法讲解

📑getchar()的参数
  • 🌱 这里我们可以看到 getchar() 的参数是 void 空类型
  • 🌱就是没有参数的意思,不需要参数。
📑getchar()的返回值
  • 返回成功时

  • 🌱这里写着,成功后返回值为int类型。

  • 🌱而我们字符在存储是也是用**ASCLL**码存储的,也是整数所以用int接收返回值。

  • 返回错误时

  • 🌱返回类型为 int 以适应特殊值 EOF该值指示失败:

  • 🌱那么怎么样返回错误呢?

  • 🌱ctrl+z会让 scanf 或者 getchar 返回EOF就可以啦!

💬为什么getchar的返回值是个整形int而不是char

💭 扩展:原反补的概念

所以我们是getcahr()的返回值用是int是不是好一些,而不是char

📚 getchar( )实例应用:

📑 示例一:

int main()
{
	int ch = getchar();//输入A
	printf("%c\n", ch);//已字符形式打印字符A
	putchar(ch);//打印字符
	return 0;
}

📑示例二:

int main()
{
	int ch = 0;
	while ((ch = getchar()) != EOF)
	{
		putchar(ch);
	}
	return 0;
}

⛳️好了以上就getchar()的用法就讲清楚了。

💬scanf函数的讲解

  • scanf函数博主前一篇文章详细讲解过呢!
  • 大家可以去看一下,里面详细讲解了scanf函数的细节!
  • 注:下面蓝色文字就是链接呢!
  • scanf函数详解

💬 getchar 和 scanf 用法错误实例:

✅ 模板:

int main()
{
	//123456
	char password[20] = {0};
	printf("请输入密码:>");
	scanf("%s", password);//123456
	printf("请确认密码(Y/N):");
	char input = 0;
	
	input = getchar();
	if ('Y' == input)
		printf("确认成功\n");
	else
		printf("确认失败\n");
	return 0;
}
💭 运行结果:

废话不多说运行一下便知真晓

运行结果

💬键盘缓冲区

  • 给大家提一个问题难道想scanf和getchar这样的
  • 接收函数难道是直接从键盘上接收函数吗?
    在这里插入图片描述

⛳️说明:

scanf 演示

📖 运行错误的原因
  • 📌 而当我们输入123456然后换 缓存区中存的是123456加上\n这回车换行符
    在这里插入图片描述

🎬 原因找到,实战开始!

📚 解决方法

📑 方法一:

  • 🌱 最简单的方法,我们单独放上一个getchar()把换行符\n提前读取了就好了
#include <stdio.h>
int main()
{
	//123456
	char password[20] = {0};
	printf("请输入密码:>");
	scanf("%s", password);//123456 abc
	printf("请确认密码(Y/N):");
	char input = 0;
	getchar();//\n
	if ('Y' == input)
		printf("确认成功\n");
	else
		printf("确认失败\n");
	return 0;
}

在这里插入图片描述

在这里插入图片描述

  • 我们来一起好好分析一下?

📑 方法二:

  • 🌱前面说了错误原因getchar( )只读取了一个字符,那么用循环清理掉多个字符不就好了。
  • 🌱让getchar() 只要没有读取错误就一直循环!就完美解决错误啦!
#include <stdio.h>
int main()
{
	//123456
	char password[20] = {0};
	printf("请输入密码:>");
	scanf("%s", password);//123456 abc
	printf("请确认密码(Y/N):");
	char input = 0;
	//清理掉缓冲区中剩余的数据
	while (getchar() != '\n')
	{
		;
	}
	input = getchar();
	if ('Y' == input)
		printf("确认成功\n");
	else
		printf("确认失败\n");
	return 0;
}

循环解决缓冲区

总结

✅ 归纳:
好了以上就是关于getchar()函数的用法,和关于缓冲区的概念就讲完了!
  getchar的参数
  getchar的返回值
  EOF的讲解
  缓冲区概念的讲解
☁️ 学会这些大家就不会再为,scanf函数和getchar函数使用时找不到错误而发愁了!
看到这里了还不给博主扣个⛳️ 点赞☀️收藏 ⭐️ 关注
💛 💙 💜 ❤️ 💚💓 💗 💕 💞 💘 💖
拜托拜托这个真的很重要!
你们的点赞就是博主更新最大的动力!
有问题可以评论或者私信呢秒回哦。
在这里插入图片描述

举报

相关推荐

0 条评论