简单的输入输出函数

简单的输入输出函数

1、putchar函数

读取键盘输入字符并输出到终端(屏幕)上;

putchar:    put a character 输出一个字符

函数格式:putchar(x);  等价于  printf(%c”,x);

测试putchar函数与printf函数的等价关系:

#define _CRT_SECURE_NO_WANINGS
#include<stdio.h>
#include<stdlib.h>
int main() {
	char m = 'a';
	printf("您的姓名姓的首字母是:%c\n",m);
	printf("您的姓名姓的首字母是:");
	putchar(m);
	return 0;
}

2、puts函数

puts函数用来向标准输出终端(屏幕)输出一个字符串并换行

puts :put a string 输出一个字符串

测试puts函数和printf函数的输出效果

#define _CRT_SECURE_NO_WANINGS
#include<stdio.h>
#include<stdlib.h>
int main() {
	char my_name[120] = "小柯南";
	printf("您的姓名:");
	puts(my_name);
	printf("您的姓名:%s",my_name);
	return 0;
}

3、getchar 函数

从标准输入流里读取下一个字符

函数格式:int getchar();
/*
x=getchar() 等价于 scanf_s(“%c”,&x)
*/

测试getchar函数和scanf_s函数

#define _CRT_SECURE_NO_WANINGS
#include<stdio.h>
#include<stdlib.h>
int main() {
	char my_name = 'a';
	printf("请输入您的姓名:");

	scanf_s("%c", &my_name, sizeof(my_name));
	printf("您的姓名:%c\n", my_name);

	printf("您的姓名:");
	int c=getchar();
	putchar(my_name);
	return 0;
}

getchar函数的返回值是int类型,返回的是一个字符对应的ASCII码数值。

当程序首次调用getchar时,或者说当标准输入流(stdin)内为空时,程序阻塞在那就等着用户按键。

直到用户按回车为止,包括回车所有的输入的字符都被存入了标准输入流中。

之后每次调用getchar函数时,总是从流中读入一个字符。直到回车符’\n’被读出之后,标准输入流就空了。

那么就有疑问了?可不可以利用getchar函数实现与scanf(“%s”,x)等价的功能呢?答案当然是可以的。

#define _CRT_SECURE_NO_WANINGS
#include <stdio.h>
int main() {
	int i = -1;
	char s[120] = "";
	printf("请输入您的姓名:");
	do{
		s[++i] = getchar();
		putchar(s[i]);
	} while (s[i] != '\n');
	s[i] = '\0'; 	//设置结尾符号
	return 0;
}

4、gets函数

gets函数是从标准输入流中读出一行文字,读出回车符’\n’之后结束读取。

写程序时,申请的缓冲区数组的空间应该足够大,以便在执行读操作时不发生溢出。

函数格式:char *gets( char *buffer );

gets(x)函数与scanf("%s",x)相似,但不完全相同。使用scanf("%s",s) 读取的一行文字中不包含回车符,而gets函数读取的一行文字是包含回车符的,但是在字符串初始化时应该加上结束符号”\0”。

#define _CRT_SECURE_NO_WANINGS
#include <stdio.h>
int main(){
	char s[66]="\0";
	printf("请输入您的名字:");
	gets_s(s); 		//代替scanf("%s",s);
	puts("您输入的名字是:");
	puts(s);	//将整个字符串输出
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值