本文已参与「新人创作礼」活动,一起开启掘金创作之路。
1. 输入输出
1.1 getchar/putchar
C语言无I/O语句,I/O操作由函数实现
#include <stdio.h>
1.1.1字符输入函数getchar
原型:int getchar(void);
格式: getchar( )
功能:从键盘读一字符
返值:正确返回读入的字符的ASCII;
出错或结束键盘输入,返回-1 (ctrl+d)
回车结束输入
注意无论传参是数字还是字符,最后都是输出字符
char c = getchar(); //有错误,应该为int c
//char 范围为-128-127,对应ASCII表(0-255)来说太小,unsigned char为0-255,但是无法接收出错返回的-1,所以返回值是int型
例如:
#include <stdio.h>
int main()
{
int c; //重点
printf("Enter a character:");
c=getchar();
printf("%c--%d->hex%x\n", c, c, c);
}
运行结果:
Enter a character:A
A--65->hex41
1.1.2字符输出函数putchar
原型:int putchar(int c);
eg:putchar(32); 输出一个空格
putchar('a'); 输出a
格式: putchar( c )
参数: c为字符常量、变量或表达式
功能:把字符c输出到显示器上
返值:正常,为显示的字符;
注意无论传参是数字还是字符,最后都是输出字符
#include <stdio.h>
main()
{
int c; //整形变量
char a; //字符变量
c=65; a='B';
putchar(c)//整形变量,输出的是ascii为65对应的字符;
putchar('\n')//字符常量;
putchar(a)//字符变量;
}
运算结果为:A
B
1.2 gets/puts
1.2.1字符串输入函数gets
格式: char * gets(char *s)
功能:从键盘输入一以回车结束的字符串放入字符数组中,并自动加‘\0’
说明1:输入串长度应小于字符数组维数
说明2:与scanf函数不同,gets函数并不以空格作为字符串输入结束的标志。
举例如下
int main( )
{
char string[15]; //最多可以输入14个字符
printf(“Input a string:”);
gets(string); //从终端拿到的字符串需要提前申请一个数组来存放
printf(“%s\n”, string);
return 0;
}
1.2.2字符串输出函数puts
格式:int puts(const char *s)
功能:向显示器输出字符串(输出完,换行)
说明:字符数组必须以‘\0’结束
返回值:int,成功返回正数,失败返回EOF
puts(arr); 输出arr字符串
puts函数默认有换行
举例如下
#include <stdio.h>
int main( )
{
char string[80] = “How are you”;
puts(string);
return 0;
}
输出: How are you?