C语言没有自己的输入/输出语句,但它提供了丰富的输入/输出标准库函数。由于标准输入/数出库函数是在头文件stdio.h中定义的,因此,在使用这些库函数之前,要用于预编译命令#include将“头文件”包括到源文件中:
#include "stdio.h"或#include <stdio.h>
a.字符数据的输入与输出
(1).字符输出
putchar是字符输出函数,它的功能是在显示器上输出单个字符。它在stdio.h头文件中声明的格式为:
int putchar(int c);
其中参数c为一个整型值,正常结束后返回值为输出的字符,如果发生错误或者文件结束返回EOF(End of File);c一般为介于0到127的十进制整数,输出对应的ASCII码值得字符。
例如:putchar(65); 输出的结果为A,因为字符A的ASCII码对应为65。
但是,由于ASCII数值难于记忆,该函数用法的一般格式为:
putchar(形式参数);
格式中的形式参数可以使字符常量、字符变量或者是表达式。
例如:
putchar('A'); --> A
putchar('x'); --> x
putchar('\101') 101为8进制的65,输出结果为A
putchar("\n") 换行
putchar('\t') 输出Tab
(2).字符输入
getchar函数是字符输入函数,它的功能是用户从键盘上输入一个字符,函数接受这个字符的输入,它在stdio.h头文件中声明的格式为:
int getchar(void);
例如:
char c;
c = getchar();
b.格式输入与输出
(1).printf函数的基本格式
printf函数是一个标准库函数,它在头文件stdio.h中声明的格式如下:
int printf(char*format[,argument]...);
其中,format为格式控制字符串,用于指定输出格式,argument为输出项,可以有多个,用逗号隔开。
格式控制字符串包括两部分内容:一部分是普通字符或转义字符,这些字符按原样输出,它通常用于在程序运行时给使用者有关提示信息,或对输出信息做有关的注释或说明;另一部分是格式控制字符,以%开头,后跟一个或几个字符,它在格式控制字符中用来占位,并将在该位置用格式字符确定的格式输出列表对应的输出项。
printf的格式控制的完整格式是:
% - 0 m. n l
①%: 表示格式说明的起始符号
②-: 有-表示左对齐输出,如省略表示右对齐输出
③0: 有0表示指定空位填0,如省略表示指定空位不填
④m. n: m指域宽,即对应的输出项在输出设备上所占的字符数。n指精度。用于说明输出的实型数的小数位数。未指定n时,隐含的精度为n=6位。
⑤l或h: l对整型指long型,对实型指double型。h用于将正行的格式字符修正为short型。
格式字符 | 意义 |
---|---|
d,i | 以十进制形式输出带符号整数(正数不输出符号) |
u | 以十进制形式输出无符号整数 |
o | 以八进制形式输出无符号整数(不输出前缀0) |
x,X | 以十六进制形式输出无符号整数(不输出前缀Ox),用x则输出十六进制数的a~f小写字母输出,用X则输出十六进制数的A~F大写字母输出 |
f | 以小数形式输出单、双精度实数,隐含输出6为小数 |
e,E | 以指数形式输出单、双精度实数 |
g,G | 以%f或%e较短的输出宽度输出单、双精度实数,不输出无意义的0.用G时,若以指数形式输出,则指数以大写表示 |
c | 以字符形式输出,只输出单个字符 |
s | 输出字符串,直到遇到"\0"。若字符串长度超过指定的精度,则自动突破,不会截断字符串 |
%% | 输出%本身 |
p | 输出变量的内存地址 |
(2).scanf函数的基本格式
格式输入函数scanf按用户指定的格式从键盘上把数据输入到指定的变量之中,是一个标准库函数,它在头文件stdio.h中声明的格式如下:
int scanf(char*format[,argument]...);
例如:scanf("%d %d %d",&a,&b,&c);
注:在VS2017中,scanf已经不再安全,会显示error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
在程序最开头添加宏
#define _CRT_SECURE_NO_WARNINGS
即可解决