顺序打印程序
玩muse dash时见到点击人物触发语音,有了灵感。
于是乎,用C语言做了一个用Enter触发打印语句,输入q退出的程序。
鄙人水平十分有限(还没学到指针),如有不当欢迎指正。
实验内容:
- 实验项目名称:ATRI-REPLY
- 实验任务:制作一个会回复的程序
- 实验条件:多平台兼容
- 编译环境:gcc
- 使用语言:C语言
- IDE:vscode
- 备注:按任意键触发语句,并按顺序分别打印。
- 日志:2021-10-13 实现运行,但无法解决关于换行符的问题。
需要实现无缓冲运行,不依赖Enter键执行。
2021-10-16 使用getchar()代替input变量来判断字符。
没有改善,依旧无法处理换行符的问题。
2021-10-16 使用else if解决了问题。
#include <stdio.h>
int main(void)
{
int i = 1; //初始化变量
char input; //定义输入
//用户交互界面
printf("Press Enter to continue\n");
printf("or input \"q\" to quit.\n");
while (input = getchar())
{
if (input == '\n') //输入为Enter时执行打印。
{
switch (i) //判断“i”的值
{
case 1:
printf("sentence 1\n"); //打印语句1
break;
case 2:
printf("sentence 2\n"); //打印语句2
break;
case 3:
printf("sentence 3\n"); //打印语句3
i = 0; //将i变量重新赋值为0
break;
}
i++; //将i的值递增
}
else if (input == 'q') //输入为“q”时终止程序。
break;
}
return 0;
}
- 实验成果:
1.getchar()可用作判断字符,而scanf()可用作判断输入正误。
2.break语句用于跳过内循环。
3.getchar()单独使用依然是依次读取字符。
4.作分支时,应优先选择else if。