`
wangangie14
  • 浏览: 42627 次
  • 性别: Icon_minigender_2
  • 来自: 珠海
最近访客 更多访客>>
社区版块
存档分类
最新评论

第四章 字符串和格式化输入/输出

 
阅读更多

  C语言没有字符串类型,而是把它存储在char数组中,字符串以空字符'\0'结束,非打印字符,其ASCII码值为0.双引号对""并不包含在字符串中,它仅告知编译器这是个字符串,另外由编译器负责插入空字符\0. scanf()开始读取后,会在遇到第一个空白字符空格、制表符或换行符处停止读取,C使用其他读取输入函数如gets()来处理一般字符串。 另外"x"和'x'不同。 另外sizeof,是否使用圆括号取决于是否想获取一个类型的大小还是某个具体量的大小,圆括号对于类型是必须的,如sizeof(float),而对于具体量是可选的,如sizeof 6.28,当然都带着比较好。 strlen()不计算\0,而sizeof()则计算空字符\0。 当编译程序时,#define定义的常量值会在常量名出现的每个地方替代它,当运行程序时,所有的替代都已经完成了。 #define PI 3.1415926
  请注意:符号名后的所有内容都被用来代替它,不要犯这样的错误:#define TOES = 20,这样TOES会被=20所替代。
  C90新增了const关键字:const int MONTHS = 12;
  在系统中也定义了明显常量,C头文件limits.h和float.h分别提供有关整数类型和浮点类型的大小限制的详细信息,每个文件
  都定义了一系列应用于实现的明显常量。
  
  float.h
  
  
  因为printf()使用%来标识转换说明符,所以打印%时,使用2个%符号,如上。
  可以在%和定义转换字符之间通过插入修饰符对基本的转换说明加以修改,表中有些是C99新增的,而且如果使用了一个以上的修饰符,则应该与下表中出现的顺序相同,并不是所有的组合都是可能的。
  
  
  
  
  赋初值时采用"截尾法",而打印时,则采用"四舍五入法"
  P83的例子非常好!!!!!!!!!!!!!!!!!如果0标志和精度说明符比如%5.3f同时出现,则0标志就会被忽略!!
  float值在被用于表达式或参数之前会被自动转换成double型,带小数点型常量都是double型。
  P84页转换说明的意思非常好!!!当传递参数时,传递给printf()的参数按照参数变量类型(float转换成double)被存储在栈中,而打印时,printf()却按照转换说明符从栈中读取。
  printf()函数的返回值是返回所打印的字符的数目,如果输出错误,那么printf()会返回一个负数。注意,计数针对所有的打印字符,包括空格和不可见的换行字符。
  打印超长字符串的方法:(1)、多个printf()语句;(2)反斜线符号和回车键组合方式;(3)字符串连接方式,多个""的字符串,两者之间禁用空白字符分隔 从键盘上输入的是文本字符,scanf()的作用就是:把这些文本字符转换成相应形式,使用规则: 如果使用scanf()来读取一个字符串到一个字符数组中,不要在字符数组名前加&
  如果使用scanf()来读取其他基本变量类型的值,则请在变量名之前加一个&
  scanf()函数使用空格(换行、制表符和空格)来决定怎样把输入分成几个字段,依次把转换说明与字段相匹配,并跳过它们之间的空格(唯一的例外就是%c,即使下一个字符是空白字符,它也会读取那个字符)。 scan()与printf()转换说明符几乎完全相同,主要区别在于:printf()把%f、%e、%E、%g和%G同时用于float类型和double类型,而scanf()只把它们用于float类型,而用于double类型时,需加上"l"修饰符,转换说明符如下图所示:
  
  
  P90页从scanf()角度看输入不错,细看看:当读到与转换说明符不符的字符时,scanf()把该字符放回输入流,而且scanf()会跳过开头的空白字符。scanf()的%s只能读取不包含空白字符的单词,其他常用的getchar()和gets()可用于读取一个字符或一个可包含空格的字符串。
  scanf()函数允许您把普通字符放在格式字符串中。除了空格字符之外的普通字符一定要与输入字符串准确匹配,如: scanf("%d,   %d", &n, &m);
  在输入时必须输入以下格式:88,121,注意:逗号必须像scanf()中那样紧跟在88之后,不过因为scanf()会跳过整数前面的空白字符,所以在输入时可在逗号后面键入一个空格或换行符,格式字符串中的空格意味着跳过下一个输入项之前的任何空格(包括"没有空格"的特殊情况")。对于%c注意:(1)scanf("%c",&ch);读取在输入中遇到的第一个字符,而(2)scanf("  %c", &ch)则会读取遇到的第一个非空白字符,因为scanf()会因为(2)中%c之前的空格而跳过空白字符。
  scanf()函数返回成功读入的项目个数,如果没有读取任何项目则返回0. 当它检测到"文件结尾"时,它返回EOF。 printf()的*修饰符:printf("Weight = %*.*f\n",width, precision, weight);依次*、*、f对应width, precision, weight
  scanf()的*修饰符:当把它放在%和说明符字母之间时,它使函数跳过相应的输入项目。scanf("%*d %*d %d", &n);这样输入三个数时,会跳过前面两个不读取,只读取第三个值并赋给变量n。
  在两个转换说明之间放一个空白字符,可以确保即使一个数字溢出了自己的字段,它也不会闯入下一个数字一起输出,这因为控制字符串中的常规字符(包括空格)会被打印出来
分享到:
评论

相关推荐

    第四章 字符串和格式化输入输出.pdf

    C语言思维导图

    精通正则表达式基于.NET ASP PHP JSP JavaScript

    格式化表单字符串.php 格式化表单字符串 24.php 格式化字符串 25.php 格式化HTML实体 26....

    C#精髓中文版

    第四章 bcl综述 核心类型 文本 集合 流和输入输出 联网 线程 安全 反射 序列化 远程调用 web服务 数据访问 xml 图形 丰宣的客户应用程序 web应用程序 全球化 配置 高级组件服务 配件 诊断与...

    Linux下C编程函数手册/linux下C编程必备函数大全

    第14章 格式化输入输出函数 第15章 文件及目录函数 第16章 信号函数 第17章 错误处理函数 第18章 管道相关函数 第19章 socket相关函数 第20章 进程通信(IPC)函数 第21章 记录函数 第22章 环境变量函数 第23章 正则...

    Linux C 函数库参考手册 中文版

    第14章 格式化输入输出函数 第15章 文件及目录函数 第16章 信号函数 第17章 错误处理函数 第18章 管道相关函数 第19章 Socket相关函数 第20章 进程通信(IPC)函数 第21章 记录函数 第22章 环境变量函数 第23章 正则...

    自学去c语言视频教程

    字符串和格式化输入输出 6) C语言之使用字符串 7) C语言之格式化输出 8) C语言之格式化输入 9) C语言之格式化输入输出整理 10) C语言之基本运算符 11) C语言之其他运算符 12) C语言之表达式和语句 循环语句 13) ...

    leetcode和oj-Data-Structures-and-Algorithms:挑战的日子

    字符串和格式化输入/输出 运算符、表达式和语句 C 控制语句:循环 C 控制语句:分支和跳转 字符输入/输出和输入验证 职能 数组和指针 字符串和字符串函数 存储类、链接和内存管理 文件输入/输出 结构和其他数据形式 ...

    C语言开发手册PPT(1-15章)

    第1童 C语言概述,第2章 典型的C语言开发环境,第3章 C语言数据类型,第4章 运算符和表达式,第5章 C语句及流程控制结构,第6章 格式化输入/输出,第7章 数组,第8章 函数,第9章 指针,第10章 结构,第12章 预处理...

    C语言全套视频教程 视频.txt

    字符串和格式化输入输出 6) C语言之使用字符串 7) C语言之格式化输出 8) C语言之格式化输入 9) C语言之格式化输入输出整理 10) C语言之基本运算符 11) C语言之其他运算符 12) C语言之表达式和语句 循环语句 13)...

    Linux_C函数库参考手册[完整版].pdf

    第14章、格式化输入输出函数 第15章、文件及目录函数 第16章、信号函数 第17章、错误处理函数 第18章、管道相关函数 第19章、Socket相关函数 第20章、进程通道(IPC)函数 第21章、记录函数 第22章、环境变量函数 第...

    python中常用的输入输出语句.docx

    python中常用的输入输出语句全文共5页,当前为第1页。python中常用的输入输出语句全文共5页,当前为第1页。... 可以使用格式化字符串来输出复杂的内容,并将变量值插入到字符串中,如:print("我的名字是%s,今年%d岁。

    C++编程思想(第2版 第2卷)

     第4章 输入输出流   4.1 为什么引入输入输出流   4.2 救助输入输出流   4.2.1 插入符和提取符   4.2.2 通常用法   4.2.3 按行输入   4.3 处理流错误   4.4 文件输入输出流   4.4.1 一个...

    LABVIEW虚拟仪器从入门到测控应用130例.(电子工业.李江全.任玲.廖结安.温宝琴)

    第4章 数组数据 实例基础 数组数据概述 实例29 初始化数组 实例30 创建数组 实例31 计算数组大小 实例32 求数组最大值与最小值 实例33 删除数组元素 实例34 数组索引 实例35 替换数组子集 实例36 提取子数组 实例37 ...

    -C++参考大全(第四版) (2010 年度畅销榜

    第4章 数组和以null结束的字符串 4.1 一维数组 4.2 生成指向数组的指针 4.3 向函数传递一维数组 4.4 以null结束的字符串 4.5 二维数组 4.6 多维数组 4.7 带下标的指针 4.8 数组初始化 4.9 棋盘游戏实例 第5章 指针 ...

    C和C++头文件对比一览

    #include <iomanip.h> //参数化输入/输出 #include <iostream.h> //数据流输入/输出 #include <limits.h> //定义各种数据类型最值常量 #include <locale.h> //定义本地化函数 #include <math.h> //定义数学...

    C大学教程(第五版·中文版).pdf【第四部分】

    第9章 格式化输入输出 第10章 结构体、共用体、位操作和枚举类型 第11章 文字处理 第12章 数据结构 第13章 C预处理 第14章 C语言的其他专题 第15章 基于Allegro C函数库的游戏编程 第16章 排序:更深入的透视 第17章...

    c程序设计习题参考(谭浩强三版)习题参考解答

    8.8编写一函数,有实参传来一个字符串,统计此字符串中字母,数字,空格和其它字符的个数,在主函数中输入字符串以及输出上述的结果。 52 8.10写一函数,用“起泡法”对输入的10个字符按由小到大的顺序排列。 54 ...

    谭浩强C语言设计第三版.pdf

     2.4.2 格式化输入函数scanf()  2.4.3 字符输入/输出函数getchar()与putchar()  习题二 第3章 C语言程序的流程控制  3.1 算法  3.1.1 算法的组成要素与基本性质  3.1.2 算法描述工具  3.1.3 自项向下、逐步...

    C大学教程(第五版·中文版).pdf【第一部分】

    第9章 格式化输入输出 第10章 结构体、共用体、位操作和枚举类型 第11章 文字处理 第12章 数据结构 第13章 C预处理 第14章 C语言的其他专题 第15章 基于Allegro C函数库的游戏编程 第16章 排序:更深入的透视 第17章...

Global site tag (gtag.js) - Google Analytics