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. docker - 启动container时出现 [warning] : ipv4 forwarding is disabled. networking will not work

    起因 今天在一台新的centos宿主机上安装docker,由于关闭了iptables,在此之后启动container的时候会出现警告: WARNING: IPv4 forwarding is disa ...

  2. php7 安装yar 生成docker镜像

    Docker包含三个概念:(1)远程仓库即远程镜像库所有镜像的聚集地(不可进入操作).(2)本地镜像即从远程仓库拉取过来的镜像(3)运行起来的本地镜像叫做容器(分层的可操作)Docker使用:1.首先 ...

  3. 从Android源码的角度分析Binder机制

    欢迎访问我的个人博客,原文链接:http://wensibo.top/2017/07/03/Binder/ ,未经允许不得转载! 前言 大家好,好久不见,距离上篇文章已经有35天之久了,因为身体不舒服 ...

  4. 用CSS3实现无限循环的无缝滚动

    有时候在页面的某个模块中,需要无限循环的滚动一些消息.那么如果我们用js实现无缝衔接滚动的思路是什么呢(比如我们这个模块是向上滚动的)? 克隆A一份完全一样的数据B放在原数据A的后面: 使用setIn ...

  5. SharePoint 2016 修改左上角连接

    SharePoint 2016默认会有左上角这样的一个功能.  估计都想把它改掉. 方法1: 打开,输入下面的命令,可将图中的sharepoint修改为想要的文字 $webapp = Get-SPWe ...

  6. VMvare虚拟机的安装及新建虚拟机.

    一.VMvare虚拟机的安装 1.首先双击--你下载的安装包,这里我分享百度云盘,供大家下载:http://pan.baidu.com/s/1jImQSZG 2.VMware Workstation ...

  7. [图形学] Chp18 OpenGL表面纹理函数

    以2D表面为例展示纹理贴图,用opengl设置一个2D纹理,颜色存储在32*32*3的数组中,对应的纹理坐标为0<=s, t<=1.0. 画出几个正方形表面,分别以GL_CLAMP(纹理坐 ...

  8. User implements HttpSessionBindingListener

    public class User implements HttpSessionBindingListener { private int id; private String userName; p ...

  9. javascript 实现 对XML文件 2级/3级联动操作

    js代码 //实现对xml文档的读取:function loadXMLDoc(dname) { try // Internet Explorer { xmlDoc = new ActiveXObjec ...

  10. CJOJ 2171 火车站开饭店(树型动态规划)

    CJOJ 2171 火车站开饭店(树型动态规划) Description 政府邀请了你在火车站开饭店,但不允许同时在两个相连的火车站开.任意两个火车站有且只有一条路径,每个火车站最多有 50 个和它相 ...