C语言使用gets()函数时如何为用户输入内容添加制表符缩进
C语言输入内容缩进实现方案
修改后可直接运行的代码
#include <stdio.h> int main() { char name[30]; printf("\tEnter Your Name = \n"); // 输入前先输出制表符,让光标移动到缩进位置 printf("\t"); gets(name); char address[100]; printf("\tPlease enter your address = \n"); printf("\t"); gets(address); printf ("\tYour name is = %s\n", name); printf("\tYour address is = %s", address); getchar(); return 0; }
改动说明
- 核心逻辑:你原代码仅给提示文本加了制表符缩进,提示文本输出后换行会把光标重置到新行的最左侧,用户此时输入的内容自然没有缩进。只需要在每次调用输入函数前,先输出一个
\t制表符,将光标移动到缩进位置后再等待用户输入,就能实现你要的效果。 - 安全优化建议:
gets()函数没有输入长度校验,存在严重的缓冲区溢出风险,已经被C11及后续标准正式删除。如果你的作业允许替换输入函数,建议用更安全的fgets(),用法为fgets(存储数组名, 数组长度, stdin);,如果不需要保留输入末尾自动带的换行符,可以手动通过name[strcspn(name, "\n")] = '\0';的方式清除。
内容的提问来源于stack exchange,提问作者Zeref slayer
相关产品推荐
相关产品推荐

