顺序打印程序(C语言新手)

顺序打印程序

玩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。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值