1.C语言在屏幕上显示内容

我们有两种方式从计算机获得信息:一是看屏幕上的文字、图片、视频等,二是听从喇叭发出来的声音。
 
让喇叭发出声音目前还比较麻烦,我们先来看看如何在屏幕上显示一些文字吧。例如在屏幕上显示“C语言中文网”:
  1. puts("C语言中文网");
这里有一个生疏的词汇puts,用来让计算机在屏幕上显示文字。
 
更加专业的称呼:
  1. "在屏幕上显示文字"叫做输出(Output);
  2. 每个文字都是一个字符(Character);
  3. 多个字符组合起来,就是一个字符序列,叫做字符串(String)。
 
puts 是 output string 的缩写,意思是”输出字符串“。
 
在C语言中,字符串需要用双引号" "包围起来,C语言中文网 什么也不是,计算机不认识它,"C语言中文网"  才是字符串。
 
puts 在输出字符串的时候,需要将字符串放在( )内。
 
在汉语和英语中,分别使用 。和. 表示一句话的结束,而在C语言中,使用 ; 表示一个语句的结束。puts("C语言中文网")表达了完整的意思,是一个完整的语句,需要在最后加上;,表示当前语句结束了。
 
总结起来,上面的语句可以分为三个部分:
  1. put( )命令计算机输出字符串;
  2. "C语言中文网"是要输出的内容;
  3. ; 表示语句结束。

①.puts("C语言中文网");的各种写法

在教程中我们讲到,puts("C语言中文网");可以输出“C语言中文网”几个字,那么,下面的写法对不对呢?
 
A) 用两个语句输出:
  1. puts("C语言");
  2. puts("中文网");
 
 
B) 换行
  1. puts("C语言
  2. 中文网");
  3. 或者
  4. puts
  5. ("C语言中文网");
  6. 或者
  7. puts
  8. (
  9. "C语言中文网"
  10. )
  11. ;
 
C) 带空格
  1. puts ("C语言中文网");
  2. 或者
  3. puts ("C语言中文网");
分析:
  1. 这些写法当中,只有 B 选项的第1种写法错误,其他都是正确的。
  2. C语言会忽略空白符,包括空格、Tab缩进、换行等,但是字符串不能换行。
 

②.输入法的选择

puts("C语言中文网");中的括号、双引号、分号都是英文符号,而且是半角的,所以在编写代码的时候需要切换到英文半角输入法。
 
C语言起源于美国,单词、标点、特殊符号都需要使用英文半角输入法才有效,否则无法识别,读者要注意区分中英文标点。
 
相似的中英文标点有:
中文分号;和英文分号;;
中文逗号,和英文逗号,;
中文冒号:和英文冒号:;
中文括号()和英文括号();
中文问号?和英文问号?;
中文单引号’‘和英文单引号' ';
中文双引号“ ”和英文双引号" "。
 

③.C语言程序的整体框架

 
puts 可以在显示器上输出内容,但是仅有 puts 是不够的,程序不能运行,还需要添加其他代码,构成一个完整的框架。完整的程序如下:
  1. #include<stdio.h>
  2. int main()
  3. {
  4. puts("C语言中文网");
  5. return0;
  6. }
 
第 1~3 行、第 5~6 行是固定的,所有C语言源代码都必须有这几行。你暂时不需要理解它们是什么意思,反正有这个就是了,以后会慢慢讲解。
 
但是请记住,今后我们写的所有类似 puts 这样的语句,都必须放在{ }之间才有效。
 

2.C语言转义字符

通过puts可以输出字符串,例如:
  1. puts("123abc");
"123abc" 对应的ASCII码值的八进制分别是 61、62、63、141、142、143,上面的代码也可以写为:
  1. puts("\61\62\63\141\142\143");
在C语言中,所有的ASCII码都可以用反斜杠 \ 加数字(默认是8进制)来表示,称为转义字符(Escape Character),因为\后面的字符都不是它原来的ASCII字符的意思了。
 
除了八进制,也可以用十六进制来表示。用十六进制表示时数字要以x开头。"123abc" 对应的ASCII码值的十六进制分别是 31、32、33、61、62、63,所以也可以写为:
  1. puts("\x31\x32\x33\x61\x62\x63");
 
注意:只能使用八进制或十六进制,不能使用十进制。
一个完整的例子:
  1. #include<stdio.h>
  2. int main(){
  3. puts("The string is: \61\62\63\x61\x62\x63");
  4. return0;
  5. }
运行结果:
The string is: 123abc
 
在ASCII码中,从 0~31(十进制)的字符为控制字符,它们都是看不见的字符,不能在显示器上显示,也没法书写,只能以转义字符的形式来表示。不过,直接使用ASCII码值记忆不方便,针对常用的控制字符,C语言又定义了简写方式,完整的列表如下:
转义字符 意义 ASCII码值(十进制)
\a 响铃(BEL) 007
\b 退格(BS) ,将当前位置移到前一列 008
\f 换页(FF),将当前位置移到下页开头 012
\n 换行(LF) ,将当前位置移到下一行开头 010
\r 回车(CR) ,将当前位置移到本行开头 013
\t 水平制表(HT) (跳到下一个TAB位置) 009
\v 垂直制表(VT) 011
转义字符示例:
  1. #include<stdio.h>
  2. int main(){
  3. puts("C\tC++\tJava\nC first appeared!\a");
  4. return0;
  5. }
 
运行结果:
C       C++     Java
C first appeared!
同时会听到喇叭发出“嘟”的声音,这是使用\a的效果。
 
 
 

C语言初探的更多相关文章

  1. Squirrel语言初探(可以使用VC6或者MinGW编译)

    Squirrel语言初探 为啥我要关注Squirrel语言?原来Squirrel就很像我希望设计出的理想中的语言(当然也不完全符合).比如我觉得Lua的语法表述不清晰,累赘,于是想用C系语法来代替Lu ...

  2. GO语言初探

    1.GO使用UTF-8编码,纯Unicode文本编写. 2.$ go verson (windows) 3.windows下,需要设置go语言的环境变量,新建一个名为 GOROOT的变量,指向go的具 ...

  3. lua语言初探

    写在最前面 <cocos2d-x lua核心编程>是我首次购买电子书,坑的就不谈了,书里的代码部分基本上不是少空格就是多换行,让阅读变得十分困难. 所以又购买了实体书,加上看一些大佬视频和 ...

  4. [java]java语言初探 servlet+jsp架构

    <<head first java>> https://www.tutorialspoint.com/jsp/jsp_architecture.htm JSP Processi ...

  5. Ruby学习之对象模型

    这两周工作内容较多,平时自己也有点不在状态,学的东西有点少了,趁着现在还有点状态,赶紧复习一下之前学习的Ruby吧. Ruby是我真正开始接触动态语言魅力的第一个语言,之前虽然也用过且一直用perl. ...

  6. C: printf参数执行顺序与前置后置自增自减的影响

    起源: 今天在了解副作用side-effect的过程中,看到了下面的网页,把我带到了由printf引起的一系列问题,纠结了一整天,勉强弄懂. 第一个代码没什么好解释的.而第二个printf(" ...

  7. C++中的三种继承方式

    1,被忽略的细节: 1,冒号( :)表示继承关系,Parent 表示被继承的类,public 的意义是什么? class Parent { }; class Child : public Parent ...

  8. windows下的go语言的环境搭建和初探

    闲话不说,直入主题. 1.准备工具 a.windows下的Go语言开发安装包 官方下载地址:https://code.google.com/p/go/downloads/list b.Go语言中文官网 ...

  9. GO语言的进阶之路-初探GO语言

    GO语言的进阶之路-初探GO语言 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.为什么我们需要一门新语言 Go语言官方自称,之所以开发Go 语言,是因为“近10年来开发程序之难 ...

随机推荐

  1. 修改linux的系统时间

    可以使用date命令.date用于打印或设置系统日期和时间.设置系统时间需要root权限.用法示例:设置系统日期成2015年08月13日,这样会把具体时间设置清空成00:00:00$ sudo dat ...

  2. jq和js插件的各个文件夹里放置的内容

    1. demo文件夹,存放各种实例. 2. dist文件夹,全称是distribution.在某些框架中,因为开发和发布的内容或者代码形式是不一样的(比如利用Grunt压缩等等),这时候就需要一个存放 ...

  3. 【Android Developers Training】 99. 获取联系人详细信息

    注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...

  4. 13.localStorage和sessionStorage的区别

    HTMl5的sessionStorage和localStorage html5中的Web Storage包括了两种存储方式:sessionStorage和localStorage. sessionSt ...

  5. iOS 本地视频和网络视频流播放

    需求:最近公司需要做一个楼宇对讲的功能:门口机(连接WIFI)拨号对室内机(对应的WIFI)的设备进行呼叫,室内机收到呼叫之后将对收到的数据进行UDP广播的转发,手机(连接对应的WIFI)收到视频流之 ...

  6. Java基础(4)-数组

    java数组 public class ArrayKnowledge { @SuppressWarnings("unused") public static void main(S ...

  7. PHP xmapp 下面安装 Composer-Setup.exe

    1.打开PHP配置文件E:\xampp\php\php.ini确认以下模块已开启(移除前面的分号). extension=php_openssl.dll, (php.ini文档里面开启一次就OK了) ...

  8. Android 测试 Appium、Robotium、monkey等框架或者工具对比

    1. Appium测试 (功能测试,用户接受度测试,黑盒测试) - Rating: 8 Appium测试相当于黑盒测试.只是测试UI逻辑正确性.所以Appium测试框架提供的方法有限.获取一个Appi ...

  9. Oracle 11g RAC 自动应用PSU补丁简明版

    环境:Oracle RAC(GI 11.2.0.4 + DB 11.2.0.4) 本文应用补丁信息: Patch 23615403 - Combo of OJVM Component 11.2.0.4 ...

  10. java CountDownLatch 使用介绍

    CountDownLatch是在java1.5被引入的,跟它一起被引入的并发工具类还有CyclicBarrier.Semaphore.ConcurrentHashMap和BlockingQueue,它 ...