暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

C语言基础开发[叁]

小柯南有话说 2021-09-06
500

第九章 简单的输入输出函数


putchar函数

puts函数

getchar函数

gets函数


putchar函数

读取键盘输入字符并输出到屏幕上 putchar:put a character 输出一个字符

函数格式:

putchar(x);

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;
}


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;
}


getchar函数

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)等价的功能呢?

答案当然是可以的!

利用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;
}


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;
}


文章转载自小柯南有话说,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论