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. java 得到uuid并处理

    java 得到uuid String s = UUID.randomUUID().toString(); //去掉“-”符号 return s.substring(0,8)+s.substring(9 ...

  2. Linux下memcached安装与连接

    前几天技术总监要我在项目中加一个memcached,以前也从来没有配置过,所以就去网上找教程,最终折腾成功.比较坑的就是sasl协议那里. 由于memcached依赖libevents,所以要下载两个 ...

  3. Spring Boot 快速入门(一)

    简介  相信很多人都接触spring框架很长时间了,每次搭建spring框架的时候都需要配置好多的jar.xml,做很多繁琐重复的配置,稍微不留神就会出现各种各样的问题,每次调试真的是香菇.蓝瘦啊. ...

  4. 用Eclipse的snippets功能实现代码重用

    snippets功能实现代码重用 Snippets 代码片段是Eclipse的一个插件. 很多时候可以通过这个功能,重复使用常用的代码片段,加快开发效率. 创建一个代码段的步骤: 在Eclipse的e ...

  5. 实现excel导入导出功能,excel导入数据到页面中,页面数据导出生成excel文件

    今天接到项目中的一个功能,要实现excel的导入,导出功能.这个看起来思路比较清楚,但是做起了就遇到了不少问题. 不过核心的问题,大家也不会遇到了.每个项目前台页面,以及数据填充方式都不一样,不过大多 ...

  6. 如何连接新浪sae共享数据库

    网上找了很久,太杂了,下文介绍如何连接新浪sae共享数据库,方便有效 1.首先贴出官方文档: 以下是一些和共享MySQL数据库服务相关的预定义常量,你可以直接引用这些参数来连接数据库: 用户名 : S ...

  7. Cordova(PhoneGap) 环境搭建与基础

    Cordova(PhoneGap) 创建步骤:官方Guide 环境准备 安装 Node.js nodejs.org 安装 git git-scm.com (bin目录添加到path) 安装 cordo ...

  8. winform .net2.0的程序如何运行于.net 4.x

    约束 最近有一个winform项目,要求: (1)程序能够运行在winxp, win7, win8, win10中 (2)安装尽可能简单,尽量不要安装.net framework.即使要安装也要尽可以 ...

  9. 设置select标签的高度

    当无法给select标签设置高度的时候,给他加一个背景色,就可以设置了.

  10. Java的数据类型和参数传递

    Java提供的数据类型主要分为两大类:基本数据类型和引用数据类型. Java中的基本数据类型 名称 大小 取值范围 byte型 (字节) 8bit -128-127  (-2^7到2^7-1) sho ...