CSDN上发博文,尤其是有代码的,要用好“插入代码”功能(见下图)。这是必须的,未来的IT程序员,需要用这种方式,展示出自己的代码。这是尊重读者,树立品牌的需要。

  

  相关方法,参考见视频《发布第一个C++上机报告》和博文《搬家到CSDN的同学要用好一个好功能》。

  不过这样一来,也带来了一些麻烦,用不好这些功能,会将页面搞得乱七八糟,尤其对刚开始学习程序设计的菜鸟。本文将就常见的问题,提出解决办法。这对老鸟根本不是问题,菜鸟们做到了,就是一种进步,同时,对以后要学习HTML而言,也是一次非常好的提前体验。

  此文菜鸟独享,非菜人员就此绕行。

插入的代码,常被分隔成几部分,如何处理?

  有人插入代码后,又做了些修改,常把代码搞成了下面的样子:

  1. /*这是我的第一个程序
  1. 作者:蔡袅
  1. */
  1. #include <iostream>
  2. using namespace std;
  3. int main()
  4. {
  5. cout<<"This is a C++ program."<<endl;
  6. return 0;
  7. }

  太难看了!要解决上面的问题,有必要知道点HTML的初步知识。

  网页中的排版,是受一种称之为超文本标记语言(HTML)控制的。其中规定了一系列用尖括号表示的“标志”,例如:一个段落用<p>开始,用</p>结束,</br>代表换行,<img>表示插入的图像,<a>.......</a>是超链接。

  上面那一段C++代码对应的HTML描述为:

  1. <pre name="code" class="cpp">/*这是我的第一个程序</pre>
  2. <pre name="code" class="cpp">  作者:蔡袅</pre>
  3. <pre name="code" class="cpp">*/</pre>
  4. <pre name="code" class="cpp">#include <iostream>
  5. using namespace std;
  6. int main()
  7. {
  8. cout<<"This is a C++ program."<<endl;
  9. return 0;
  10. }
  11. </pre>

  可以看出,用<pre name="code" class="cpp">......</pre>表示中间的那部分(.......)是C++代码。对照看一下,如果我们将所有代码放在一对<pre>...</pre>中间,其编号就可以做成连续的(即将中间多余的</pre><pre...>删除。)。

  即将上面的代码修改为:

  1. <pre name="code" class="cpp">
  2. /*这是我的第一个程序
  3. 作者:蔡袅
  4. */
  5. #include <iostream>
  6. using namespace std;
  7. int main()
  8. {
  9. cout<<"This is a C++ program."<<endl;
  10. return 0;
  11. }
  12. </pre>
  对应的C++代码将显示为:
  1. /*这是我的第一个程序
  2. 作者:蔡袅
  3. */
  4. #include <iostream>
  5. using namespace std;
  6. int main()
  7. {
  8. cout<<"This is a C++ program."<<endl;
  9. return 0;
  10. }

  知道这一点之后,最重要的,怎么能看到HTML代码并且进行修改呢?

  在编辑博文时,最上方的工具栏中,有一个“源代码”按钮(如下图),可以在“源代码”和“可视化编辑”间切换。我们就点击这个按钮后,去编辑HTML源文档。
  

  要修改的源代码如下图,其中被选中的蓝色区域是要删除的内容。

  

有办法避免上面的情况发生吗?

  最好将代码(包括需要的注释)利用IDE(集成开发环境,如VC++6.0等)、记事本等编辑好后,一次性通过“插入代码”加入,避免插入代码后再进行修改。出现“乱七八糟”,根本原因是在代码中加入了回车键(当然,是插入代码的这个插件还有待完善)。

  如果一定要在代码要行,建议敲回车前,按住shift键,可以解决这个问题。

不是代码的部分,也当作代码编辑了,该如何做?

  我有位学生发博文,结果是:

  1. /*这是我的第一个程序
  2. 作者:蔡袅
  3. */
  4. #include <iostream>
  5. using namespace std;
  6. int main()
  7. {
  8. cout<<"This is a C++ program."<<endl;
  9. return 0;
  10. }
  11. 运行结果:<img src="http://img.my.csdn.net/uploads/201210/06/1349511756_1311.png" alt="">
  12. 总结:程序调好了,运行结果的图呢?

  问题的原因是,最后两行不是C++,但也写在插入的代码中了。查看源代码,果然是将运行结果和总结都放在<pre>和</pre>中间了。如下图所示:

  

  修改的方法自然是,在“源代码”中,将最后的</pre>移到真正的代码结束的位置,即程序中最后一个花括号之后,如上图箭头的指向。

  修改后的结果如下,运行结果的截图能看见了!

  1. /*这是我的第一个程序
  2. 作者:蔡袅
  3. */
  4. #include <iostream>
  5. using namespace std;
  6. int main()
  7. {
  8. cout<<"This is a C++ program."<<endl;
  9. return 0;
  10. }

运行结果:

总结:程序调好了,将</pre>标志前移,运行结果的图出现了!

实在太乱了,再出个主意吧!

  出现混乱,用上面的方法调整过来,真是一件非常美妙的事情。C++是编程的入门课,借着C++,我们要学程序设计,在学习程序设计过程中,我们祈求遇着各种问题,并一一突破,这就是专业能力进步的过程,这个过程让你始终能找到要学习的内容。

  遇着问题不绕过,这是一种基本的态度。进步总是在解决问题中发生。

  有时,问题让人感觉不爽了,或者解决的办法会,调起来挺麻烦。千万让自己要有好的感受,不必一棵树上吊死。

  我的习惯是,太乱了就重编辑,反正编好的程序在。或者,将在博客中写好的文字,复制、粘贴到记事本中(目的是把各种控制格式的符号全给过滤掉了),然后将程序和所有的其他文字一次性地复制、粘贴到博文中去。很显然,程序会当作一般文本发布,这不好。下一步,将代码部分剪切出来,就在那个位置,“插入代码”,之后不必做任何修改,一篇漂亮的博文完成!

CSDN代码片排版的更多相关文章

  1. vim 代码块排版

    http://cookoo.iteye.com/blog/32275 方法: 1. 按v进入visual状态,选择多行,用>或<缩进或缩出 2. 通常根据语言特征使用自动缩进排版:在命令状 ...

  2. Xcode 常用快捷键及代码自动排版 二

    Xcode常用快捷键,网上找的总结一下,特别是格式化代码 隐藏xcode command+h退出xcode command+q关闭窗口 command+w关闭所有窗口 command+option+w ...

  3. Xcode 常用快捷键及代码自动排版

    1. 文件CMD + N: 新文件CMD + SHIFT + N: 新项目CMD + O: 打开CMD + S: 保存CMD+OPt+S:保存所有文件CMD + SHIFT + S: 另存为CMD + ...

  4. 强势围观,CSDN代码引用bug

    看我写的一篇blog  http://blog.csdn.net/laijieyao/article/details/41014355,在代码上引用了微软雅黑的字体,结果代码显示出来把我给惊呆了 竟然 ...

  5. 如何在notepad++实现代码自动化排版(调用Astyle)

    我先介绍这个怎么在notepad++中调用原版的astyle的方法. 在notepad++:运行或是F5, 在输入框中选择astyle.exe所在的目录,什么你没有astyle,下载地址https:/ ...

  6. C#自动缩进排列代码的快捷键 c# 代码重新排版 变整齐

    C#自动缩进排列代码的快捷键:  ctrl + k + d 1.小技巧, 可以把最后一个}去掉, 重新写下,就可以达到排版的效果. 2.快捷键:编辑-高级-设置文档的格式 快捷键Ctrl+E,D,设置 ...

  7. JS代码格式化排版工具,web文本编辑器

    js格式化代码工具:http://www.cnblogs.com/blodfox777/archive/2008/10/09/1307462.html web文本编辑器 :http://www.div ...

  8. VS代码自动排版

    1, ctrl+a 2, ctrl+k 3, ctrl+f

  9. 代码整洁--使用CodeMaid自动程序排版

    在项目开发的过程中,如果只是验证命名规则.而没有统一程序排版,项目中很容易就会出现类似下列范例的程序代码产出.这样的产出,虽然能够正常地提供项目功能.并且符合微软的命名规则,但是因为程序排版凌乱的问题 ...

随机推荐

  1. jcscriput

    关于h5,相比前端的同事们都很了解了吧!h5里面有个canvas,现在用的蛮火.但是canvas里面的代码确实是有点繁多,特别是要对于图形做什么操作的时候...我昨天无意间发现了一个canvas的插件 ...

  2. string和stringBuilder的区别

    曾经被问到过这个问题,回答得不是很好,在网上找了一下,园子里有大神很详细地讨论了二者的区别. http://www.cnblogs.com/yunfeng8967/articles/1093832.h ...

  3. django_auth_ldap

    使用django_auth_ldap来实现ldap和django自己的认证系统auth 下载插件 python-ldap和django_auth_ldap 配置settings.py 一些基本说明: ...

  4. 连续子数组的最大和/1007. Maximum Subsequence Sum (25)

    题目描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学.今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决.但是,如果向量 ...

  5. XenServer安装虚拟机---先扩容存放ISO镜像文件

    我们都知道xenserver安装后,不管你的盘有多大,只有4G的空间. 故操作是:新建LV卷,可自定义大小 1.vgdisplay #先查看剩余空间 [root@XenServer /]# vgdis ...

  6. 2016 系统设计第一期 (档案一)jQuery ajax serialize()方法form提交数据

    jQuery ajax serialize()方法form提交数据,有个很奇怪的问题,好像不能取到隐藏控件的值. //点击提交按钮保存数据 $('#btn_submitUser').click(fun ...

  7. always语言指导原则

    1.每个always只有一个@(event-expression). 2.always块可以表示时序逻辑和组合逻辑. 3.带有posedge和negedge关键字的是表示沿触发的时序逻辑,没有的表示组 ...

  8. Scene (场景视图) 详解

    控制二维切换的按钮 点击2D按钮可以激活2D模式.这个按钮会将场景相机在透视视图和正交投影视图之间进行切换.当观察透视视图时,远离相机的物体看起来更小:然而,当正交投影视图的时候,物体的大小并不受相机 ...

  9. Quartz.net 的开源任务管理平台

    Quartz.net 的开源任务管理平台 前面总结了很多,关于Quartz.net 的文章,介绍了如何使用Quartz.net.不清楚的朋友,可以看我之前的系列文章,http://www.cnblog ...

  10. JPA学习---第一节:JPA详解

    一.详解 JPA JPA(Java Persistence API)是Sun官方提出的Java持久化规范.它为Java开发人员提供了一种对象/关系映射工具来管理Java应用中的关系数据.他的出现主要是 ...