2012年1月内蒙古科技与经济Januar y2012 第1期总第251期Inner M o ngo lia Science T echnolo gy&Economy N o.1T o tal N o.251
C语言程序设计的输入输出X
常 鑫
(集宁师范学院数学系,内蒙古乌兰察布 012000)
c语言怎么用printf
  摘 要:在C语言中,提供的关于输入输出函数的格式非常多,也较为繁琐,不好记忆。尤其对于初学者而言,是个不容忽视且难以攻克的难题,通过对这方面的知识做个概括和总结,帮助程序员在编写程序的时候解决掉这些棘手的问题。
关键词:输入函数;输出函数;print f;scanf
  中图分类号:T P311.1  文献标识码:A  文章编号:1007—6921(2012)01—0085—01
  接触过C语言程序的人都知道,几乎所有的C 语言程序都包含输入和输出(有些是没有输入只有输出的)。很多C语言的初学者认为print f函数和scanf函数是C语言提供的输入输出语句。实际上,C 语言本身是不提供输入输出语句的。在C语言中,输入输出的功能都是由C语言的标准函数库中的函数来实现的。简单地
说,就是printf和scanf不是C语言中的关键字,而是库函数的名字。如果不用这两个名字去命名,自己编写两个分别具有输入和输出功能的函数,也可采用C语言中其他合法的名字作为函数名,这样做的原因是因为C语言编译系统要将C 语句翻译成计算机能够识别的二进制的指令是在编译阶段完成的,不把printf和scanf作为C语句就可以避免在编译阶段处理与硬件有关的问题,可使编译系统简化,通用性强,可移植性好,在各种不同型号的计算机和编译环境下都适用。
1 C语言标准输入输出函数
C语言函数库中有一系列“标准输入输出函数”,包括:格式输入输出函数print f和scanf,专门的字符输入输出函数put char和g et char,还有字符串输入输出函数put s和get s。笔者就以上几个函数在多年教学过程中遇到的问题做如下总结和详解。
在使用输入输出函数时,要在程序文件的开头用预处理命令#include“st dio.h”把头文件放在本程序中(有些C编译系统考虑频繁地使用printf和scanf,允许在只适用这两函数的情况下可以省去该命令)。
2 常用函数的一般形式
2.1 print f函数的一般形式
pr int f(参数1,参数2,…,参数n)
参数1是由双撇号括起来的格式控制字符串,一般的它包含2方面的内容:格式声明和普通字符。
¹格式声明:(将数据按照指定格式输出)由“%”和格式字符组成。º普通字符:输出操作时,原样输出的字符(包括双撇号中的逗号,空格和转义字符等)。
参数2,…,参数n是输出表列,即需要输出的数据,一般式常量、变量或表达式。由此可见,格式控制字符串和输出表列实际上都是函数的参数。例: printf(“x=%d,y=%f n”,x,y);
其中,“x=%d,y=%f n“是格式控制字符串,即参数1(x=,y=, n和第一个逗号都是原样输出的普通字符,%d和%f是格式声明,而第二个和第三个逗号是参数分隔符),x和y分别是参数2和参数3。
2.2 scanf函数的一般形式
scanf(参数1,参数2,…,参数n)
同print f函数,参数1也是由双撇号括起来的格式控制字符串。
格式控制同print f函数,需要注意的是这里是数据的输入,而不是像输出操作那样,我们在双撇号中怎么写结果就怎么输出,而是要求我们在有普通字符的位置在输入数据时要原样再输入这些字符。例:
scanf(”x=%d n”,&x);
这里的“x=”和“ n“是需要我们在输入数据的时候原样输入的,这点在教学中常出现的问题就是同学们在写程序的时候,输入语句像输出语句一样写的详细明了,可在程序运行输入数据的时候却又忽略掉了这些具有提示意义的普通字符而导致输入错误。所以,在这里笔者建议大家,尤其是初学者,不要故意给自己增设障碍,我们不提倡大家对输入语句的格式控制部分的提示字符写的过于详细,而一般只书写格式声明部分即可。如上例可简化成: scanf(”%d“,&a);
或在输入语句上方加一条
printf(”a=“);等类似的提示语句即可。
不得不强调的一点是scanf函数中的参数2,…,参数n称为地址表列,意思是表示变量的地址,而不是变量,这点是不同于print f函数的,尤其在学习指针内容的时候尤为注意。
还值得一提的是在连续输入各类型数据如何进行数据分隔的问题。
在连续输入多个非字符型数值(下转第87页)
X收稿日期:2011-11-28
 李立扬・SY ——40数控旋压机主轴故障分析和处理2012年第1期
在操作面板上的L /R 键负责调速器近控和远控之间的切换,在近控方式下,可直接通过操作面板的按钮控制主轴的启动、停止、正转、反转和速度快慢的调节,在操作面板的显示屏上,通过菜单按钮M 可
显示菜单目录。
图2 590直流调速器操作面板
首先,检查调速器菜单目录中的电机标识电压、电枢电流、励磁电流的数字是否和主轴电机的铭牌一致,励磁控制模式、速度反馈选择是否和实际情况相符,并检查各相关连线是否接通,然后根据以上列出的故障点分别加以排除。具体排除方法如下:¹使调速器在近控模式下,去掉测速器反馈线,并通过菜单把速度反馈选项变为ARM VOLT S FBK(电枢电压反馈),此时启动调速器使主轴旋转,发现主轴正反转速度正常,说明590直流调速器本身没有问题;º使调速器在近控模式下,接上测速器反馈线,并通过菜单把速度反馈选项变为ANAL OGT ACH (模拟测速器),此时启动调速器使主轴旋转,发现主轴正反转速度正常,说明测速器反馈信号没有问题;»把数控系统主轴轴口的15、16号输出线和调速器的A 1、A4端子断开,并在主轴轴口的15、16输出端之间接一个阻值为1K 8的假负载,在系统启动主轴旋转时,用万用表直流档分别测主轴在正转和反转时主轴轴口15、16端子间的电压,测得主轴在正转和反转时15、16端子间电压都很正常(-10V ~+10V ),说明数控系统的主轴轴口输出电压没有问题;¼通过以上分析,可以肯定数控系统、主轴轴口、调速器和测速器都没有问题,唯一有可能是高频干扰信号串入调速器的速度设定输入端子A 1、A4之间,使得端子A 1、A 4之间的正电压变低,负电压变高,进而造成主轴转速不正常。由于电容有滤除高频信号的功能,使调速器在远控模式下,在端子A 1、A 4间接入高频滤波电容C,容量为103,通过数控面板设定转速后启动主轴测得端子A 1、A 4之间的正反向电压大小一致,旋压机主轴的正反向转速恢复正常,故障彻底排除。3 结束语
通过该方法处理旋压机的主轴故障,不仅可以节约2万多元的厂家对调速器检修和调试的费用,同时对现有的8台带有直流调速器的大型设备出现类似的故障提供了一个非常有效的维修思路,大大降低了维修成本,对保证此类设备的正常运行和生产任务的顺利完成具有重要的意义。
(上接第85页)数据时(在C99中是将字符型数据当做数值型数据来处理的),以输入3.4为例:
scanf (”%d%f “,&x,&y);
在输入数据3和4时,我们需要自己加上数据分隔符,在这种情况下,我们可以用一个或一个以上的空格、回车、T ab 键等不属于数值数据的非法字符作为分隔或数据输入的结束标志。
在连续输入字符型数据时,以输入a,b 为例:
scanf (”
%c %c “,&a ,&b );在输入字符a 和b 时,之间不要加任何分隔符,这点要特别注意,字符只占一个字节,系统可以根据字节数区分将哪个字符输送到哪个变量中,不要认为得加空格,回车等字符。
在输入数值型数据和字符型数据时,也不需要添加任何分隔符,以输入3.4和a 为例:
scanf (”%f %c “,&x,&c);
在输入3.4和a 时之间不要加空格,不然系统直接将此类分隔符送到变量c 中。
有时候在写的输入语句时候就已经加上逗号作为分隔符,这时候我们只能以逗号作为分隔符。
scanf (”
%f ,%c “,&x ,&c );在输入3.4和a 时,必须要在两数据之间加上一个逗号作为分隔符。
2.3 字符的专用输入函数get char 的一般形式
get char ();
此函数使用时要注意的一点是没有参数,一次只能输入一个字符,并且只能输出字符。例:
int c;
c=g et char ();putchar (c);
输入数据97时,输出结果只能是字符9。2.4 字符的专用输出函数putchar 的一般形式
putchar (c);
有参数c ,其中c 可以是字符型常量、变量,整型常量、变量,如果是整型常量或者变量,数值要在0到255之间才能正常输出该字符。同样,不管参数是什么,最后输出的结果只是字符。3 结束语
以上是对笔者输入输出函数的一系列问题的罗列和总结,希望可以对程序设计人员或初学者提供一定的帮助。
[参考文献]
[1] 谭浩强.C 程序设计[M ].北京:清华大学出版
社,2010.
[2] 张长海,陈娟.C 程序设计[M ].北京:高等教
育出版社,2004.
[3] 姜仲秋等,C 程序设计[M ].南京:南京大学出
版社,1998.

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。