输入、输出的应用 2014年3月11 一、数据输入输出的概念 • 1、输入输出是以计算机主机而言的。从计 算机主机向外部输出设备(如显示器、打 印机)输出数据称为输出,从输入设备( 如键盘、鼠标、扫描仪)向计算机输入数 据称为输入。 • 2、C语言本身不提供输入输出语句,输入 输出操作是由C函数库中的函数来实现的。 • 如printf函数和scanf函数。 • 3、需用到输入输出函数时,需用预编译命 令“#inlude”将头文件“stdio.h”包括进 来。 基本输入输出 • 头文件 – #include • 输入输出函数 – 字符输出函数putchar() – 字符输入函数getchar() – 格式输出函数printf() – 格式输入函数scanf() – 字符串输出函数puts() – 字符串输入函数gets() 格式输出函数printf • 格式 printf(格式控制,数据列表) • 功能 格式化输出若干任意类型数据 Printf函数的作用是向终端(或系统隐含的输出设备)输出 若干个任意类型的数据。它可以输出多个数据,且为任意 类型。 函数printf的参数说明 • 格式控制:是由双撇号括起来的字符串, 也称“转换控制字符” – 包括“格式说明”和“普通字符” – “格式说明”由%和“格式字符”组成,将输出数据 按指定格式输出,格式说明总是由%开头 – “普通字符”按原样输出的字符 • 输出列表 – 需要输出的数据 – 可以是变量、常量、表达式、函数调用等 – 输出数据按顺序与“格式说明”对应输出 函数printf的格式举例 printf(“a=%d ,b=%d“, a, b); 格式说明普通字符输出列表 输出结果 a=3 , b=4 格式控制字符 格式字符说 明 d, i 有符号十进制整数,正数不输出符号 o无符号八进制整数,不输出前导0 x, X无符号十六进制整数,不输出前导0x或0X u 无符号十进制整数 c转换为无符号字符型,以此为ASCII码输出一个字符 s输出字符串,直到遇到'\0'或达到指定宽度 f小数形式单、双精度数,缺省精度为6位小数 e, E以规范化指数形式输出浮点数,缺省精度为6位小数 g, G以f(F)和e(E)两种格式中较短的一种输出 %输出一个% 函数printf举例 (02-03.C) 例子一 格式输入函数scanf • 格式 scanf(格式控制字符串,地址列表); • 格式字符串含义与printf函数相同;地址表列 是由若干个地址组成的表列,可以是变量的 地址,或字符串的首地址。 • 功能 格式化输入若干任意类型数据 函数scanf使用说明 • “地址列表”中是变量的地址,而非变量 – scanf(“%d“, • 关于输入格式 – 格式字符串中的普通字符须按相应位置输入 – 除字符型(%c)外,输入项之间用一个或多 个空白字符分隔,包括空格、回车、制表符 – 空白字符会作为%c对应的输入 – 如规定了最大宽度,且输入数据超出宽度, 则按宽度截取数据 格式字符 格式字符说 明 d 有符号十进制整数 i有符号整数,可以是八进制(带前导0)或十六进制( 带前导0x或0X) o有符号八进制整数,可以带或不带前导0 x, X有符号十六进制整数,可以带或不带前导0x或0X u 无符号十进制整数 c 输入一个字符,包括空白字符 s输入无空白字符的字符串,不需要用““括起来 f,e,E,g,G 浮点数,可以用小数形式或指数形式 %输入一个% 函数scanf举例 (02-04.C) int i, j; char c; scanf(“%d%d“, /* “2 3“ or “23“ or “23“ */ scanf(“i=%d, j=%d“, /* “i=2,j=3“ or “i=2,j=3“ */ scanf(“%d%c%d“, /* “2 a 3“ = i=2, c='', j出错 */ /* “2a 3“ = i=2, c='a', j=3 */ 字符输出函数putchar • 函数说明 – putchar(int c); – 输出一个字符到标准输出设备 • 参数说明 – int c 要输出的字符,可以是整数或字符 ,若超出字符型范围,则只使用低字节 函数putchar举例 (02-01.C) int c, i; putchar('a');/* 输出'a' */ putchar('\n');/* 输出换行符 */ putchar(101);/* 输出'e' */ putchar('\101');/* 输出'A' */ c = 1000; i = putchar(c);/* 输出'è',i=232 */ 字符输入函数getchar • 函数说明 – getchar(void); – 从标准输入设备输入一个字符 – 需要输入回车后,函数才返回 • 参数说明 – 无参数 函数getchar举例 (02-02.C) int c; c = getchar();/* 输入'a'后回车 */ putchar(c);/* 输出'a' */ c = getchar();/* 是否需要输入? */ printf(“c=%d\n“, c);/* 输出c=? 10 */ c = getchar();/* 输入'abcd'后回车 */ putchar(c);/* 输出'a' */ putchar(getchar()); /* 输出'b' */
展开阅读全文