C语言不确定循环会影响输入输出缓冲区的刷新

如下代码,在打印出"测试文本"之前会卡顿一小段时间,主要原因是下方循环的不确定性,编译器不知道下方的循环什么时候结束,把scanf()删掉同时循环体换一行任意的一行代码,一样会有卡顿。

如果循环结束条件是确定的,编译器一眼可以看出来的,那么就不会有卡顿。

编译环境DevC++5.11自带的TDM-GCC 4.9.2 64-bit Release

cpp 复制代码
#include<stdio.h>

int main(){
	int c=0,s=0;
    printf("测试文本\n");
    
	while(1){
		scanf("%d", &c);
		if(c==1) break; 
	}
	printf("所有正奇数的和为:%d\n", s);
    return 0;
}
相关推荐
地平线开发者2 小时前
J6B vio scenario sample
算法
BothSavage14 小时前
Trae远程开发中DeepSeek自定义模型4054错误的排查与修复
算法
小林ixn14 小时前
从暴力到KMP:一道题彻底搞懂字符串匹配的前世今生
算法
烬羽15 小时前
字符串算法入门:从反转字符串到回文判断,面试不再慌
算法·面试
先吃饱再说1 天前
判断回文字符串,从一行代码到双指针优化
算法
黄敬峰1 天前
深入理解算法核心:从递归思想、数组扁平化到快速排序
算法
得物技术1 天前
从狂野代码到按目标生产:得物推荐 AI Harness 的工程化实践|AICon 演讲整理
人工智能·算法·架构
AI小老六2 天前
SkillOpt 架构拆解:把 Skill 文本当参数,用执行轨迹训练 Agent
后端·算法·ai编程