C语言里的空格问题,快崩溃!
小弟菜鸟一枚,在学小甲鱼的《带你学C》,第三节课后作业动动手环节都快把我逼疯了啊啊啊!!急求高人大神前辈指点!我的代码和小甲鱼的答案代码一模一样,但是执行结果却让人崩溃!没错!就是用星号*在屏幕上打印出飞机图样的程序。
我的源代码和答案源代码在C编辑器上显示的完全一样!但是一旦复制到其他文本编辑器就立马显示出错乱!空格和退格键乱入占位!执行后我的星号图样也是歪七八钮完全没有飞机摸样!
这才意识到C语言里空格居然也是一个字符,大家究竟是怎样在避免空格、退格扰乱行列的同时写出那个星号飞机程序的啊啊啊!
截图 截图!
猜测你应该是代码里的飞机和运行界面里的飞机位置对不上
可以每行都用printf
或者用/n/来确定运行界面的换行位置 目前我一般使用NOTEPAD++这个软件写源码,因为它可以显示所有的符号,包括转义字符。
换行,空格,缩进,都能用它自己的符号标识出来,虽然开了这个略有点乱,但是当你需要的时候,它就有用了!{:10_254:} 问题截图已上!究竟怎么回事?!教程里根本没提会出现这种情况啊啊啊啊!@小甲鱼?!! 我不是不会用方法2每行都用printf,只是我要搞懂这个问题究竟出在哪里 小甲鱼答案代码如下——
#include <stdio.h>
int main()
{
printf("\n\
@\n\
/ \\\n\
* *\n\
* *\n\
* *\n\
* * * * * *\n\
* * * * * * * *\n\
* * * * * * * * * *\n\
* *\n\
* *\n\
* * * *\n\
* * * * * *\n");
return 0;
}
我将答案复制进DEV C++后和我上图我原本的代码一模一样,但是执行后是正确的飞机图样,但我把它复制进入txt文本里却是不分行的一团???究竟怎么回事?有哪位大神能解答?
利用缓冲区 这个跟编译器的编码方式以及TAB键是占用多少个空格有关系
你可以使用\t这个在前面试下 我猜你可能是用鼠标全选复制到文本编辑器里面的,这个过程中大概丢失了空格或者制表符,我直接鼠标点击复制就正常 我觉得是文本编辑器的问题,你用专门的文本编辑器就OK啊 画飞机的时候tab键不要按,用空格 getchar 问题原因应该是两个编辑器tab缩进不同,可以将所使用的编辑器设置为(2个4个或8个自己定)空格代替tab缩进。用空格在复制黏贴一般不会出错
不会设置的可以用以下3种方案应该可以解决
1.直接在ide里面写不会出错。
2.在编辑器里写好保存为c文件,后再加入到ide运行,或命令行编译运行等
3.你复制过去后改一下缩进啊
最后:生命在于折腾!!!
你这个问题是正常的,应该现在记事本里面复制粘贴,然后再到程序中去{:5_91:} 编译器问题复制代码到vs2015里面 编译输出都是正确的 你的编译器回车下行 应该是TEB不是空格的
页:
[1]