You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言代码求助:读取回车键后未正确执行递增打印逻辑

问题修复与说明

修复后的代码

#include <stdio.h> 
int main() 
{ 
    int i = 0; 
    if (getc(stdin) == '\n') 
    { 
        i++;   
        printf("%d\n", i); 
    } 
    return 0; 
} 

原代码的问题点

  • if语句末尾的多余分号:原代码if (getc(stdin));后的分号会让if仅执行一个空语句,后续的大括号块会无条件执行,完全失去了条件判断的意义。去掉这个分号,才能让大括号内的代码成为if的条件执行体。
  • 未匹配回车键字符:getc(stdin)会读取任意输入字符,你需要明确判断读取的是否是回车键(对应ASCII字符'\n'),所以要把条件改为getc(stdin) == '\n',确保只有按下回车键时才执行递增和打印操作。
  • printf格式字符串错误:原代码中printf("%d ",i);的换行写法不符合C语言语法,必须用转义字符\n表示换行,即printf("%d\n", i);,否则会触发编译错误。

运行修复后的代码,按下回车键后,变量i会从0递增为1并被打印出来,符合你的需求。

内容的提问来源于stack exchange,提问作者Sritharni Natarajan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 13:35:44