编辑: 摇摆白勺白芍 | 2019-07-12 |
neu.edu.cn/cxsj 计算机及程序设计概述 运算符与表达式 输入/输出 在C语言中,没有专门的输入输出语句,所有的输入/输出操作都是通过对标准的I/O库函数的调用实现 【例】计算给定了底和高的三角形面积#include main(int height=5;
the height of the triangle */ int width=4;
the width of the triangle int area;
area of the triangle(computed)area=(width*height)/2;
} 输入/输出 输入/输出函数输入是指从键盘接受用户输入数据,输出是指在屏幕上显示结果数据在C的标准函数库中提供了多种输入/输出函数例如:printf函数和scanf函数这些函数定义在头文件stdio.h中提示在调用标准输入/输出库函数时,在程序的开始处应有预编译命令: #include 或#include "stdio.h" 数据输入 getchar函数功能从标准输入设备上(键盘)输入一个且只能是一个字符,并将该字符返回为函数的值格式:getchar();
提示只有在按"回车"键后输入的字 符才有效 此函数只接受一个字符,而非一串字符若输入 abcde,该 函数也只接受第一个字符 a getchar函数得到的字符可以赋 给一个字符变量或整型变量,也可以不赋给任何变量而是作为表达式的一部分 例:#include main() { int i;
i=getchar() printf("%c:%d\n",i,i);
}执行本程序时,按键A时显示结果如下:A:65 数据输入 scanf函数功能该函数从标准输入设备(键盘)上将数据读到地址参数所指定的位置上格式:scanf(format,addlist);
format规定数据的输入格式,必须由""括起来,其内容包括格式说明和普通字符两部分addlist必须与 format 参数中的类型说明相一致在C语言中一个变量的地址可以通过&地址运算符得到例如:int a,b;
则a,b的地址为&a,&b 数据输入 【例】 int a;
scanf("%d" ,&a);
含义: 按变量a在内存的地址将从外界 获取的值存入变量a所描述的存 储单元,变量a的地址在编译阶 段分配. 说明格式 输入变量地址 注意: scanf()中各个变量要加地 址操作符,就是变量名前加"&" 地址操作符,这是容易忽视的一 个问题.如果忘记了在函数的每 个变量前面加&符号,可能会导致 程序甚至系统崩溃. 格式控制符串:由" "括起 的字符串. 数据输入 scanf函数格式转换说明符格式说明规定了输入项中的变量将以何种类型的数据格式被 输入形式:%[] 可以指定输入数据的域宽,系统自动按域宽截取输入数据例如:scanf("%3d",&a);
/*按宽度3输入一个整数给变量a*/字符*:*表示按规定格式输入但不赋予相应的变量,作用是跳过相应的数据例如: scanf("%d%*d%d",&a,&b);
输入long型数据必须用%ld,输入double数据必须用%lf或%le 数据输入 scanf函数输入方法普通字符在输入时按原样输入例如 scanf("%d,%d;
",&a,&b);
/*输入:3,4 */问题:如果3
4 ?scanf("a=%d;
b=%c;
",&a,&b);
/*输入是:a=3;
b=a;
*/ a=3 ,而b的值不确定.这是因为格式串中的逗号是普通字符,要照原样输入 数据输入 scanf函数输入方法按格式截取输入数据 例如:scanf("%d%4d",&a,&b );
/*输入序列为:123
12345 则a=123 , b=1234*/为什么?虽然输入的是12345但%4d宽度为4位,截取前4位,即1234 数据输入 scanf函数如果格式说明符之间包含其他字符,则输入时,必须在相应位置输入这些字符如果格式说明符之间不包含其他字符,则输入数据时, 两个数据之间可以使用空格、tab键或回车键作为间隔输入字符数据时,由于空格和转义字符都是有效字符,所以不能以空格作为间隔符例如:scanf("%d%c",&a,&c);