雨夜孤鸦 发表于 2016-12-12 22:47:53

C语言里的空格问题,快崩溃!

小弟菜鸟一枚,在学小甲鱼的《带你学C》,第三节课后作业动动手环节都快把我逼疯了啊啊啊!!急求高人大神前辈指点!
我的代码和小甲鱼的答案代码一模一样,但是执行结果却让人崩溃!没错!就是用星号*在屏幕上打印出飞机图样的程序。
我的源代码和答案源代码在C编辑器上显示的完全一样!但是一旦复制到其他文本编辑器就立马显示出错乱!空格和退格键乱入占位!执行后我的星号图样也是歪七八钮完全没有飞机摸样!
这才意识到C语言里空格居然也是一个字符,大家究竟是怎样在避免空格、退格扰乱行列的同时写出那个星号飞机程序的啊啊啊!

人造人 发表于 2016-12-13 18:05:08

截图

zzzz76 发表于 2016-12-14 11:21:13

截图!
猜测你应该是代码里的飞机和运行界面里的飞机位置对不上
可以每行都用printf
或者用/n/来确定运行界面的换行位置

zealstar 发表于 2016-12-14 12:35:22

目前我一般使用NOTEPAD++这个软件写源码,因为它可以显示所有的符号,包括转义字符。
换行,空格,缩进,都能用它自己的符号标识出来,虽然开了这个略有点乱,但是当你需要的时候,它就有用了!{:10_254:}

雨夜孤鸦 发表于 2016-12-14 21:35:09

问题截图已上!究竟怎么回事?!教程里根本没提会出现这种情况啊啊啊啊!@小甲鱼?!!

雨夜孤鸦 发表于 2016-12-14 21:37:55

我不是不会用方法2每行都用printf,只是我要搞懂这个问题究竟出在哪里

雨夜孤鸦 发表于 2016-12-14 21:46:00

小甲鱼答案代码如下——
#include <stdio.h>

int main()
{
      printf("\n\
         @\n\
      / \\\n\
      * *\n\
      * *\n\
      * *\n\
    * * * * * *\n\
* * * * * * * *\n\
* * * * * * * * * *\n\
      * *\n\
      * *\n\
      * * * *\n\
    * * * * * *\n");

      return 0;
}
我将答案复制进DEV C++后和我上图我原本的代码一模一样,但是执行后是正确的飞机图样,但我把它复制进入txt文本里却是不分行的一团???究竟怎么回事?有哪位大神能解答?

geekerr 发表于 2017-2-11 13:17:59

利用缓冲区

lumber2388779 发表于 2017-2-11 20:08:04

这个跟编译器的编码方式以及TAB键是占用多少个空格有关系
你可以使用\t这个在前面试下

dt3tc 发表于 2017-2-12 20:23:47

我猜你可能是用鼠标全选复制到文本编辑器里面的,这个过程中大概丢失了空格或者制表符,我直接鼠标点击复制就正常

jackche0214 发表于 2017-2-13 15:52:38

我觉得是文本编辑器的问题,你用专门的文本编辑器就OK啊

要抱要吻要怎么 发表于 2017-2-13 20:36:17

画飞机的时候tab键不要按,用空格

geekerr 发表于 2017-2-14 10:28:05

getchar

0mrli0 发表于 2017-2-14 14:28:11

问题原因应该是两个编辑器tab缩进不同,可以将所使用的编辑器设置为(2个4个或8个自己定)空格代替tab缩进。用空格在复制黏贴一般不会出错
不会设置的可以用以下3种方案应该可以解决
1.直接在ide里面写不会出错。
2.在编辑器里写好保存为c文件,后再加入到ide运行,或命令行编译运行等
3.你复制过去后改一下缩进啊
最后:生命在于折腾!!!

A小小鸟 发表于 2017-2-14 14:45:53

你这个问题是正常的,应该现在记事本里面复制粘贴,然后再到程序中去{:5_91:}

age 发表于 2017-2-18 12:26:44

编译器问题复制代码到vs2015里面 编译输出都是正确的 你的编译器回车下行 应该是TEB不是空格的
页: [1]
查看完整版本: C语言里的空格问题,快崩溃!