1.字符输出函数putchar
头文件:stdio.h
函数原型:int putchar(int c)
函数参数:c为字符常量或表达式
函数返回值:输出的字符
函数功能:在标准输出上显示一个字符
示例代码如下:
#include <stdio.h>
int main()
{
int a = 65;
int b = ‘B’;
putchar(a);
putchar(\);
putchar(b);
return 0;
}
程序执行结果如下:
A
B
这里需要说明的是,在C标准中putchar函数的参数和返回值都是整型,也就是说是以字符对应的ASCII码的形式传参或返回。所以在上面例子中在参数传入65的时候打印出了ASCII码为65的对应字符A。
2.格式化输出函数printf
putchar函数只能在终端输出一个字符型的数据,如果期望在终端按照指定的格式输出若干个数据,且为任意类型,可以用printf函数。
头文件:stdio.h
函数原型:int printf (const char *format, …)
函数参数:format指定输出格式,后面跟要输出的变量,为不定参,用“…”代表。
函数返回值:成功返回输出的字节数,失败返回-1(EOF)。
函数功能:格式化字符串输出
表一 printf支持的格式:
格式符 | 作用 | 格式符 | 作用 |
i,d | 十进制整数 | s | 字符串 |
X,x | 十六进制无符号整数 | E,e | 指数形式浮点小数 |
o | 八进制无符号整数 | f | 小数形式浮点小数 |
u | 无符号十进制整数 | g | e和f中较短的一种 |
c | 单个字符 | % | 百分号本身 |
表二 printf支持的格式的修饰符:
修饰符 | 功能 |
m | 输出数据与域宽,数据长度<m,左补空格;否则按实际输出 |
.n | 对实数,指定小数点后位数(四舍五入) |
对字符串,指定实际输出位数 | |
- | 输出区域在域内左对齐(缺省右对齐) |
+ | 指定在有符号数的正数前显示+号 |
0 | 输出数值时指定左边不使用的空位自动填0 |
# | 在八进制和十六进制数前显示前导0,0x |
l | 在d,o,x,u前,指定输出精度为long型 |
在e,f,g前,指定输出精度为double型 |
表三 常用转义字符
转义符 | 功能 |
\b | 退格,将当前位置移到前一列 |
\n | 换行,将当前位置移到下一行开头 |
\t | 水平制表(跳到下一个TAB位置) |
\r | 回车,将当前位置移到本行开头 |
\” | 代表一个双引号字符 |
\\ | 代表一个反斜杠字符 |
示例代码如下:
#include <stdio.h>
int main()
{
int a = 1234;
float f = 123.478;
char ch = ‘a’;
char s[] = “Hello world!”
printf(“%8d,%2d\n”,a,a);
printf(“%f,%8f,%8.1f,%.2f\n”,f,f,f,f);
printf(“%3c\n”,c);
printf(“%s\n%15s\n%10.5s\n,%2.5s\n”,s,s,s,s);
return 0;
}
程序执行结果如下:
1234,1234
123.478000,123.478000, 123.5,123.48
a
Hello world!
Heloo world!
Hello
Hello
Hel
3.字符输入函数 getchar
头文件:stdio.h
函数原型:int getchar(void)
函数参数:无
函数返回值:成功返回读到的字符,失败或读到结束符返回EOF(-1)
函数功能:在键盘上读一个字符
提到字符型数据,就必须要熟悉ASCII表。getchar函数的返回值的含义是存储从键盘上读取的字符,返回值的类型是int,很多人不理解,认为返回值应该是char类型。实际上这里的返回值是字符相对应的ASCII码,在计算机中的字符是以ASCII码的形式处理的,每一个字符都有对应的ASCII码值。
示例代码如下:
#include <stdio.h>
int main()
{
int ch;
printf(“entrn a character:”);
while((ch = getcahr()!= EOF))
printf(“%c --->#x\n”,ch,ch);
printf(“end main\n”);
return 0;
}
程序执行结果如下:
Enter a character:a
a--->0x61
--->0xa;
b
b--->0x62
--->0xa
end main
可以看出,输入字符a时,第一次getcahr函数读到了字符a,第二次getcahr函数读到\n。按ctrl+d键,getcahr函数返回EOF,输入结束,程序退出。
4.格式化输入函数scanf
如果期望读到若干个数据,且为任意类型,可以用scanf函数。
头文件:stdio.h
函数原型:int scanf (const char *format, …)
函数参数:format指定输入格式,后面跟要输入的变量的地址表,为不定参,用”…”代表。
函数返回值:成功返回输入的变量的个数,失败返回-1(EOF)。
函数功能:按指定格式从键盘读入数据,存入地址表指定存储单元中,并按回车键结束。
表四 scanf函数支持的格式说明符:
i,d | 十进制整数 | c | 单一字符 |
X,x | 十六进制无符号整数 | s | 字符串 |
o | 八进制无符号整数 | e | 指数形式浮点小数 |
u | 无符号十进制整数 | f | 小数形式浮点小数 |
表五 scanf函数支持的格式说明符的修饰符:
修饰符 | 功能 |
h | 用于d,o,x前,指定输入为short整型 |
l | 用于d,o,x前,指定输入为long型整型 |
用于e,f前,指定输入为double型实数 | |
m | 指定输入数据宽度,遇空格或不可转换字符结束 |
* | 抑制符,指定输入项读入后不赋值给变量 |
5.字符串输入
头文件:stdio.h
函数原型:char *gets(char *s)
功能:从键盘输入一以回车结束的字符串放入字符数组中,并自动加’\0’
参数:s为字符数组,存储输入的字符串
返回值:成功返回字符数组的起始地址,失败或输入结束返回NULL。
6.字符串输出
头文件:stdio.h
函数原型:int puts(const char *s)
功能:在标准输出上显示字符串s
参数:s为需要输出的字符串。
返回值:成功返回一个非0的数字;失败返回-1或EOF。