当前位置: 首页 > news >正文

php手机网站后台源码推荐几个没封的网站

php手机网站后台源码,推荐几个没封的网站,免费app开发平台,注册网络公司需要什么条件EOF的概念 EOF是C语言中表示文件结束的标志符号,通常被定义为-1,它用于指示已到达文件的末尾或输入流的末尾。 EOF的使用 在输入操作中,EOF常常用于判断是否到达了文件末尾或输入流末尾,以便终止读取操作。例如,在使…

EOF的概念

EOF是C语言中表示文件结束的标志符号,通常被定义为-1,它用于指示已到达文件的末尾或输入流的末尾。

EOF的使用

  • 在输入操作中,EOF常常用于判断是否到达了文件末尾或输入流末尾,以便终止读取操作。例如,在使用scanf函数进行输入时,可以通过将scanf函数的返回值与EOF进行比较来判断是否读取到了文件结束符。
int result = scanf("%d", &n);
if (result == EOF) {// 文件结束或输入流结束} else {// 成功读取输入}

scanf的返回值:

scanf成功写入多少个数据,返回值就是多少,如果写入失败则返回EOF。

  • 在文件操作中,当使用类似fgetc、fgets、fscanf等函数从文件中读取字符或字符串时,当读取到文件结束符EOF时,这些函数通常会返回EOF。
int ch = fgetc(file);if (ch == EOF) {// 文件结束} else {// 成功读取字符}

需要注意的是,EOF并不是一个实际的字符或整数值,而是一个特殊的标志,用于指示文件结束或输入流结束的状态。

在不同的操作系统和编译器中,EOF的值可能会有所不同,但通常都是一个负整数(通常为-1)。因此,将函数的返回值与EOF进行比较,可以跨平台地判断文件结束。

但是在编译器输入操作中,输入无论是输入’-1‘还是输入EOF,其都是当作字符被成功地读入,并不能起到EOF的作用,也就是说while((c = getchar()) != EOF)一直跳不出来,那输入通过什么能写入EOF标志呢?

如何表示输入结束

scanf 函数中,键盘输入 Ctrl+D (在Unix/Linux系统下) 或者 Ctrl+Z (在Windows系统下) 才会被读取到 EOF (End of File),表示输入结束。 EOF 是一个特殊的标记,用于指示输入流的结束。

另外,键盘输入Ctrl+C会强制停止程序的运行

使用EOF的具体情况

  • 遇到多组输入的情况

我们可以看到在这道题目的输入描述中出现多组输入但是并没有告诉我们具体数量,在这个时候我们就需要用到EOF;

#include <stdio.h>int main() {int i;while (scanf("%d", &i) != EOF) {if (i % 2 == 0) {printf("Even\n");}else {printf("Odd\n");}}return 0;
}

但是这段代码会遇到如下两个问题:

  1. 如果连续输入多个数字而不按下回车

  2. 如果输入数字以外的其他字符

分别会出现以下两种情况:

问题分析:

第一个情况涉及到输出缓冲区的概念:

在C语言中很多输出函数(如printf, putchar)便存在输出缓存. 在window系统下,使用printf()函数后,数据被写入到输出缓冲区,随后立即刷新缓冲区,所有我们在使用printf()函数时往往会很快就在控制台打印出来了。

第二个情况输入其他符号(例如~、.)会导致陷入死循环的原因是scanf函数无法成功解析这些非数字字符,并将其保留在输入缓冲区中。

当scanf函数无法成功解析输入时,它会将输入缓冲区中的内容保留,并返回0,表示读取失败。由于输入缓冲区中的内容与%d格式要求不匹配,scanf函数会一直返回0,导致循环无法终止,从而陷入死循环。

解决办法:

读取之后检查scanf的返回值,以判断输入是否成功匹配并读取。

#include <stdio.h>int main() {int i;int result;while ((result = scanf("%d", &i)) != EOF) {if (result == 1) {if (i % 2 == 0) {printf("Even\n");} else {printf("Odd\n");}} else {printf("Invalid input\n");break;}}return 0;
}

在这个修改后的代码中,我们使用result变量来存储scanf函数的返回值。如果result等于1,表示成功读取了一个整数,并执行相应的逻辑。如果result不等于1,表示输入格式不符合预期,我们输出"Invalid input"并使用break语句跳出循环。

这样修改后,当输入其他非数字字符时,程序会输出"Invalid input",并跳出循环,而不会陷入死循环。

判断输入是否合法

如果输入错误需要重新输入而不是跳出循环的话,可以这样:

while ((result = scanf("%d", &i)) != EOF)
if (result != 1){printf("输入不合法,请重新输入!\n");while (getchar() != '\n');continue;}
http://www.yayakq.cn/news/23919/

相关文章:

  • 如何做网站首页关键词有哪些做搞笑视频的网站
  • 谷歌网站提交网络推广外包怎么接单
  • 长沙建网站的公司多少钱如何逐步提升网站权重
  • 卫浴网站源码手机网站域名注册
  • 网站建设需要怎么做wordpress 高清头像
  • 网站首页被降权怎么做百度关键词排名联系
  • 怎么优化网站排名装潢公司设计效果图
  • 服饰品牌网站建设wordpress 备份数据库结构
  • 江苏省建设厅副厅长网站网上培训课程平台
  • vs网站开发入门怎么制作网站的二维码
  • 德州哪家网站建设好建设网站技术公司简介
  • 网站推广开户书店网站模板
  • 网站开发 问题解决产品推广方案策划书
  • 贵阳网站外包网址网站注册
  • 建筑网站新闻写那些好企业招聘网站哪个最好
  • 计算机专业都学什么上海seo网站
  • 杭州网站建设教育机构怎么在本地安装wordpress
  • 筑巢网站建设怎么样网站建设与运营的预算方案
  • 深圳住房和建设部网站2万一3万电动汽车
  • 设计接单的网站wordpress内容页列表显示
  • 安徽建站找生产厂家的网站
  • 推广普通话的文字内容沧州网站推广优化
  • 如何做微信朋友圈网站花都区网站建设
  • 网站建设一般收费网站建设 服务条款
  • 类似12306网站开发厦门国外网站建设公司哪家好
  • 麻涌镇网站仿做500元制作网站
  • 网页游戏网站网址俞润装饰做哪几个网站
  • 北京金河水务建设有限公司网站wordpress+用户中心插件
  • 建设网站实训报告书网站排名优化软件联系方式
  • 程序员做的导航网站施工企业会计科目表