鱼C论坛

 找回密码
 立即注册
查看: 1277|回复: 3

关于 数组的循环

[复制链接]
发表于 2018-9-8 11:35:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 claws0n 于 2018-9-12 13:44 编辑

QQ图片20180908112730.png QQ截图20180908112814.jpg
我把循环里面的   i   放到了循环外面去初始化为0。
然后结果很奇怪,如果是循环内部每次有回0,不管我如何输入,都会正常输出。
可放到循环外面之后,输出就乱了,(只要这次输出比上一次输出 少 字符,就不输出,要等到下次输出或者直接回车才再输出。)
很奇怪,于是自己拿出纸来模拟,可是模拟不出个结果来,不懂为啥会变成这样,按照我的猜想,这些数被getchar吃掉了就不可能在输出了
可是现实是还可以输出。。另外我这个字符串是限制10的,我输入的数多,比如多到了a[13].那么系统是不是自动会在a[10]的地方做成'\0'


想问的就这2个问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-9-8 12:16:19 | 显示全部楼层
1. 为什么要用 fgets()? 那是针对文件的
2. 没有重新初始化,所以越往后面跑,不会覆盖内容
3.内循环是如果遇到空格或回车就去下一格
4. C 是没有安全检查的,越界了还可以写
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-8 12:48:05 | 显示全部楼层
claws0n 发表于 2018-9-8 12:16
1. 为什么要用 fgets()? 那是针对文件的
2. 没有重新初始化,所以越往后面跑,不会覆盖内容
3.内循环是如 ...

1.用fgets是因为gets等都会输入越界的了的数之后就会退出,而fgets不会,虽然scanf也可以但是scanf没办法处理空格。  这次是书上的一次实验,所以用fgets
2.我是故意弄成没有初始化的,就是想看看会如何,结果不初始化的话,第二次输入的(字符数)少于第一次输入的字符数时,不输出任何东西,然后第三次我在任意输入(或者直接回车)就会输出第二次输入得东西
3.这个明白_(:з」∠)_主要问题还是 第二个里面说的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-8 15:12:08 | 显示全部楼层
claws0n 发表于 2018-9-8 12:16
1. 为什么要用 fgets()? 那是针对文件的
2. 没有重新初始化,所以越往后面跑,不会覆盖内容
3.内循环是如 ...

自己调试,调试出来了_(:з」∠)_谢谢,问题解决了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-30 08:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表