关于 数组的循环
本帖最后由 claws0n 于 2018-9-12 13:44 编辑我把循环里面的 i 放到了循环外面去初始化为0。
然后结果很奇怪,如果是循环内部每次有回0,不管我如何输入,都会正常输出。
可放到循环外面之后,输出就乱了,(只要这次输出比上一次输出 少 字符,就不输出,要等到下次输出或者直接回车才再输出。)
很奇怪,于是自己拿出纸来模拟,可是模拟不出个结果来,不懂为啥会变成这样,按照我的猜想,这些数被getchar吃掉了就不可能在输出了
可是现实是还可以输出。。另外我这个字符串是限制10的,我输入的数多,比如多到了a.那么系统是不是自动会在a的地方做成'\0'
想问的就这2个问题
1. 为什么要用 fgets()? 那是针对文件的
2. 没有重新初始化,所以越往后面跑,不会覆盖内容
3.内循环是如果遇到空格或回车就去下一格
4. C 是没有安全检查的,越界了还可以写 claws0n 发表于 2018-9-8 12:16
1. 为什么要用 fgets()? 那是针对文件的
2. 没有重新初始化,所以越往后面跑,不会覆盖内容
3.内循环是如 ...
1.用fgets是因为gets等都会输入越界的了的数之后就会退出,而fgets不会,虽然scanf也可以但是scanf没办法处理空格。这次是书上的一次实验,所以用fgets
2.我是故意弄成没有初始化的,就是想看看会如何,结果不初始化的话,第二次输入的(字符数)少于第一次输入的字符数时,不输出任何东西,然后第三次我在任意输入(或者直接回车)就会输出第二次输入得东西
3.这个明白_(:з」∠)_主要问题还是 第二个里面说的 claws0n 发表于 2018-9-8 12:16
1. 为什么要用 fgets()? 那是针对文件的
2. 没有重新初始化,所以越往后面跑,不会覆盖内容
3.内循环是如 ...
自己调试,调试出来了_(:з」∠)_谢谢,问题解决了
页:
[1]