putchar()的功能是啥

1. putchar()函数简介

在C语言中,putchar()函数是一个用于输出单个字符的函数。它的原型为:int putchar(int c); 其中,c为要输出的字符,函数返回值为输出的字符的ASCII码。

putchar()函数一般用于控制台输出,其功能类似于printf()函数中的%c转换标志。但与printf()不同的是,putchar()每次只能输出一个字符,而不能输出字符串。

2. putchar()函数的使用

2.1 标准输出示例

可以使用putchar()函数输出单个字符。例如,下面的代码输出大写字母A:

#include <stdio.h>

int main()

{

putchar('A');

return 0;

}

注:其中,字符常量'A'的ASCII码为65。

运行结果为:

A

此外,也可以将字符存到一个变量中,再输出这个变量。例如:

#include <stdio.h>

int main()

{

char a = 'B';

putchar(a);

return 0;

}

注:字符常量'B'的ASCII码为66。

运行结果为:

B

2.2 文件输出示例

putchar()函数还可以与文件输出流搭配使用,将字符输出到文件中。例如:

#include <stdio.h>

int main()

{

FILE *fp = fopen("output.txt", "w"); // 打开文件output.txt

if(fp == NULL) // 判断文件是否成功打开

{

printf("文件打开错误!\n");

return 1;

}

putchar('C'); // 将字符C输出到文件中

fclose(fp); // 关闭文件

return 0;

}

运行结果为:在当前目录下生成一个output.txt文件,其中包含一个字符C。

3. putchar()函数的应用

3.1 控制台输入密码的隐藏输入

在输入密码的场景下,由于密码属于敏感信息,所以一般需要将输入的字符进行隐藏,这就需要使用到putchar()函数。

一般的实现方法是:输入一个字符后,用putchar('*')代替输入的字符进行显示,但保存输入的字符,直到用户输入回车键为止。代码如下:

#include <stdio.h>

#include <conio.h> // 控制台输入输出头文件

#define PASSWORD_LENGTH 10 // 定义密码的最大长度为10

int main()

{

char password[PASSWORD_LENGTH + 1]; // password用于保存输入的密码

int i = 0;

char ch;

printf("请输入密码:"); // 提示用户输入密码

while((ch = getch()) != '\r') // 如果没有输入回车就一直循环

{

if(ch == '\b' && i > 0) // 如果输入的是退格键,则删除上一个字符

{

putchar('\b'); // 光标前移一格

putchar(' '); // 输出一个空格覆盖原字符

putchar('\b'); // 光标退回到原来的位置

i--; // password长度减1

continue;

}

if(i == PASSWORD_LENGTH) // 如果密码长度已经达到最大值,就终止输入

{

continue;

}

password[i] = ch; // 将输入的字符存入password数组中

putchar('*'); // 输出一个星号

i++; // password长度加1

}

password[i] = '\0'; // 给password字符串最后加上'\0'结束标志

printf("\n您输入的密码是:%s\n", password); // 显示密码

return 0;

}

运行结果如下图所示:

控制台输入密码的隐藏输入

3.2 编写控制台动画

putchar()函数还可以用于在控制台输出动画。例如下面的代码实现了一个简单的控制台动画,通过putchar()函数输出一些字符,从而实现字符在控制台上的移动:

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

#include <time.h>

int main()

{

int i, j, k;

srand((unsigned int)time(NULL)); // 设置随机数种子

for(i = 1; i <= 100; i++) // 循环100次

{

for(j = 0; j < i; j++) // 输出 i 个空格

{

putchar(' ');

}

if(i % 2 == 0)

{

for(k = 1; k <= i; k++) // 输出 i 个*号

{

putchar('*');

}

}

else

{

for(k = 1; k <= i; k++) // 输出 i 个#号

{

putchar('#');

}

}

usleep(10000); // 休眠10毫秒

system("cls"); // 清屏

}

return 0;

}

运行结果效果如下:

控制台动画

4. 小结

putchar()函数是一种常用的输出函数,可以输出单个字符,也可以与文件输出流搭配使用,将字符输出到文件中。在实际应用中,putchar()函数可以用于控制台输入密码的隐藏输入,也可以用于编写控制台动画等。

后端开发标签