一段简单程序为什么在linux终端与win控制台下运行效果不同?(望高手指点)

VS Code终端运行Claude触发多窗口问题根因与修复 CLI工具在Windows终端中的进程启动行为,本质上是控制台应用与GUI环境的边界交互问题。其原理涉及PowerShell命令解析链、Node.js子进程创建机制,以及Windows对CREATE_NO_WINDOW标志的底层响应逻辑。技术价值在于避免GUI上下文误继承导致的资源滥用和体验断裂;典型应用场景包括AI CLI工具(如Claude)、Electron封装型命令行程序,在VS Code集成终端中执行时引发的异常窗口弹出、卡死或雪崩式实例启动。本文聚焦于Windows平台下VS Code + Po 阅读详情

    一段简单程序为什么在linux终端与win控制台下运行效果不同,是程序问题还是兼容性问题,希望有谁能指点一下:

    程序是这样的(怎么加为高亮?):

#include <stdio.h>
int  ProgressBar (int  p, char  *barname);
int  main(int  argc, char  *argv[])
{
    long int  i=0;
    for (i=0; i<=180000000; i++)   //模拟进度条增长
    {
        if(i!=0 && 180000000/i<=100 && 180000000%i==0)  /* 只在进度条长度101-180000000/i为1到100时,刷新进度条*/
        {   /*这个进度条就是显示‘进度条长度’个'|'字符,这个for循环应该使进度条不断增长直到结束*/
            ProgressBar (101-180000000/i, "Progress Bar");      /* ProgressBar第一个参数是0到100之间 ,表示进度条的长度*/            
        }

    }
    
    return 0;
}

int  ProgressBar (int p, char *barname)
{
    if(p>100)
    {
        return 0;
    }    
    
    int  i=1, pbc;
    char   pro[50+1];
    pbc = p/2;          //length of progress bar
    if(pbc==0)
    {
        putchar(10);
        printf("/r%s      %d%c", barname, p, 37);
    }
    else
    {
        pro[0]='|';
        while(i<pbc)
        {
            pro[i]='|';
            i++;
        }
        pro[i]=0;               
        printf("/r%s   %s   %d%c", barname, pro, p, 37);
    } 
}
    win控制台效果:(vc6下编译)

    如同预期的效果进度条不断增长直到100%

 

 

 

   linux终端显示是:(gcc编译连接,直接执行pbar)

       实际效果是根本没有个增长的过程,而是光标闪烁一段时间后(程序在运行)直接显示如下(100%)

 

 

    将这段稍作修改 原本要整除180000000%i==0,才刷新 Progress Bar(在同一行刷新Bar是用回车符'/r’),改为180000000%i<50

这样一个范围内刷新,这样 linux终端显示效果会好些,而且这个值越大,效果越好(指的是增长的效果是连续的);

 

    for (i=0; i<=180000000; i++)  //模拟进度条增长
    {
        if(i!=0 && 180000000/i<=100 && 180000000%i<50)  // 只在进度条长度101-180000000/i为1到100时,刷新进度条
        {    //这个进度条就是显示‘进度条长度’个'|'字符,这个for循环应该使进度条不断增长直到结束
            ProgressBar(101-180000000/i, "Progress Bar");      //  ProgressBar第一个参数是0到100之间 ,表示进度条的长度           
        }

    }

 

    太大也会出现异样,比如改为180000000%i<500, 不过这个效果倒是和win控制台一样

 

 

   请问下各位,这个问题出在哪里了?

 

   补充:

  linux终端执行以下代码:

  ProgressBar(10, "test");
  for (i=0; i<=80000000; i++);
  ProgressBar(30, "test");
  for (i=0; i<=80000000; i++);
  ProgressBar(80, "test");
  for (i=0; i<=80000000; i++); 
  ProgressBar(10, "test");

 

 

    出现这种结果是对的,就是过程上看不到 从 ProgressBar(10, "test");到  ProgressBar(80, "test");
的过程,而是光标闪烁一段时间后(程序在运行)直接显示这个效果 ,还有就是如果ProgressBar()后都加上putchar(10)

倒是可以按应有的顺序print出来:

 

 

 

在 Linux上如何运行 Windows应用程序 Wine 是一个令人神往而且目标远大的开放源代码项目,它尝试去解决在 Linux 上运行 Windows 可执行文件的复杂问题。尽管 Wine 不是一个新项目,但是,人们对 Linux 桌面的期望以及对 Linux 应用程序的需求日益增加,使得它现在仍具有重要意义。本文对 Wine 进行了介绍,并提出了几种获得 Wine 内部操作经验的途径。 立即下载

相关推荐

ClickHouse的bitmap使用

ClickHouse的bitmap使用 bitmap的基本使用 在CK中bitmap有两种构建方式,在ClickHouse的官网有说明: (1)一个是由聚合函数groupBitmapState构造的, (2)另一个是由Array Object构造的。同时还可以将位图对象转化为数组对象。 bitmap实战 数据和基本数据表准备 创建一张基本表,一个用户表,有多个描述的维度,每个维度由该维度的唯一id。 CREATE TABLE test02(id UInt16, tag1 UInt8, tag2 UInt8,

zg_hover的专栏 5654

同样的c代码,为何在windows下和linux下执行结果不一样?

代码如下: #include &lt;stdio.h&gt; #include &lt;string.h&gt; int main() { char *in_utf8 = "你在干吗呢"; char *in_gb2312 = "安装超人"; char *in_eng = "English man"; printf("len1=%d, len2=%d, ...

weixin_34309543的博客 1420

抖音小游戏(IAA)巨量引擎投放指南

摘要:本文详细介绍了在巨量引擎平台投放小游戏广告的完整流程,包括五个关键步骤:1)添加小游戏资产,填写ID等信息并等待审核;2)添加事件管理,配置激活和关键行为事件;3)通过橙子建站创建落地页,设置跳转链接;4)新建广告项目,选择小程序推广目标;5)完成广告创建。

分享前端工程化、AI 应用、Agent 开发与大模型实践! 4485

linux与windows相同,相同的程序在Windows和Linux上表现不同

该程序是使用模板链接列表。#includeusing namespace std;template class link{struct node{T data;struct node * next;}*p;public:link();void addatbeg(T);void show();void rematbeg();void addatmid(T,T);};template link::li...

weixin_33258874的博客 524

Unity游戏开发客户端面经——设计模式(初级)

Unity游戏开发客户端面经 之 设计模式 篇

Sea3752的博客 9430

树莓派学习系列7——GPIO基础

前言 原来学单片机的时候,就是通过一系列的引脚来控制单片机。终于学到了通过引脚来控制树莓派了。话不多说咱们先来了解基础。

我在等那么一天的博客 1万+

StringUtils.isNotEmpty()报红,从而导致项目运行失败

StringUtils.isNotEmpty()报红,从而导致项目运行失败

agng1314的博客 6590

【思考模型框架】前景理论(Prospect Theory),认为人们并不是完全理性的决策者,而是根据一些心理上的偏差来评估选项的价值

前景理论,是一种行为经济学理论。前景理论,描述了人们在不确定条件下如何作出决策。前景理论,认为人们并不是完全理性的决策者,而是根据一些心理上的偏差来评估选项的价值。

奶爸的编程之路,也就一周冷个三天 1642

在linux系统如何获得窗口句柄,编写控制台程序,获得标准输入输出的窗口句柄...

1. 编写控制台程序,获得标准输入输出的窗口句柄GetStdHandle函数声明如下 :HANDLE GetStdHandle(DWORD nStdHandle);GetStdHandle()返回标准的输入、输出或错误的设备的句柄,也就是获得输入、输出 /错误的屏幕缓冲区的句柄。其参数nStdHandle的值为下面几种类型的一种:值 含义STD_INPUT_HANDLE 标准输入的句柄STD_OU...

weixin_30910893的博客 2683

第十二章 供水管网水力模型软件介绍

本文介绍了国内外主要供水管网建模软件及其特点,重点分析了某高建模软件V14的创新功能。国际主流软件包括开源的EPANET、商业软件InfoWorksWS、WaterGEMS和MIKEURBAN,各具特色但存在应用局限。某高V14软件实现了管网GIS与模型一体化管理,采用一G多网、一网多模、一模多案、网模合一技术路线,支持全信息模型建立和动态数据更新。其创新点包括水量分配理念革新(精确/模糊匹配、三种用水模式)和首创Web服务功能。通过并发计算、GPU加速等技术优化性能,具有较高性价比。

weixin_45258875的博客 207

【数据集总结】不透水面积ISA:GAIA、CLUD-Urban、GISA

【数据集总结】不透水面积ISA:GAIA、CLUD-Urban、GISA

WW、forever的博客 2157

揭秘gti工作原理:C语言如何实现终端汽车动画效果

gti是一款有趣的终端工具,当用户快速输入“git”命令时,它会在终端中显示一辆行驶的小汽车动画,然后再执行实际的git命令。这个看似简单的小工具背后,隐藏着C语言如何操控终端输出和实现动画效果的巧妙技术。 ## 核心功能:从打字错误到创意动画 gti的核心功能是作为git命令的启动器,当用户输入"gti"而不是"git"时,程序会先在终端中显示一段汽车动画,然后再调用真正的git命令执行相应

gitblog_00080的博客 457

风控域——决策引擎系统设计

本文详细介绍了风控决策引擎系统的设计与应用。决策引擎系统是一种智能化工具,可自动化、数据驱动地辅助或替代人工决策,广泛应用于金融、医疗、营销、风控等领域。文章阐述了决策引擎的核心功能,包括自动化决策、动态规则管理、实时处理和模型集成,以及系统组成,涵盖数据输入层、规则引擎和模型服务层。此外,还探讨了决策引擎的典型应用场景、技术架构、组件设计,以及风控决策引擎系统的技术方案、设计难点和重点。

庄小焱 3317

比win7运行快的linux发行版,旧电脑扔了浪费!装SliTaz系统,瞬间运行流畅如新机,比win7更快...

原标题:旧电脑扔了浪费!装SliTaz系统,瞬间运行流畅如新机,比win7更快旧电脑如何处理?随着时代的迅速发展,电脑硬件更新换代的频率也在不断地缩短,几乎隔一段时间,就会有新产品出来。而电脑作为一个比较昂贵的产品,大多数人都不会因为有新产品出来,就把自己才使用了一两年的电脑进行更换。不过,电脑本质上还是一个十分精细的产品,随着使用时间的推移,电脑硬件会有所损耗,性能会有影响。而且,还有不断“变大...

weixin_42524610的博客 2458

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

win 10 linux shell,实用工具:Win10下的bash shell打开教程

原标题:实用工具:Win10下的bash shell打开教程Macbook可以在终端里直接使用命令行对系统进行各种操作,这个对于习惯了linux系统的人是一个很大的便利。但是macbook高昂的价格和相对的低配在人群中的持有量并不高,所以能在最常见的windows平台使用类似的终端是一个很实用的工具。我们知道Linux下的sed、awk等工具可以极大的方便我们完成某些数据处理任务,下面就给大家介绍...

weixin_29272301的博客 2969

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

如何开启win10内置Linux子程序

WX众号:基因学苑 Q群:32798724 更多精彩内容等你发掘! 自2016年推出之后,windows系统也内置一个 Ubuntu Linux 子系统环境了。现在这样三大主流操作系统都可以使用几乎统一的命令行操作了。现在 Windows 10 系统完美兼容 Linux 应用程序,这并不是通过虚拟机,也不是通过类似cygwin或者wine的方式实现。而是作为windows的一个子程序。这意味着以后...

xxxie_的博客 991

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

win10安装linux双系统(win10安装linux双系统免U盘)

win10系统下怎么安装XP双系统win10系统下怎么安装XP双? Win7系统是以XP系统为基础的,例如其使用的就是XP的菜单,换句话说它涵盖了XP的所有优越的功能。在一个电脑中有Win7系统的存在,它是不允许比它低级的系统版本运行的。XP比Win7低级,所以,此路行不通。 如何安装双系统win7和win10呢? ...

计算机毕业论文源码,学生个人网页制作html源码。贴近用户做网络推广和互联网优化。 1275

vs窗体应用linux,使用Visual Studio2019创建C#项目(窗体应用程序、控制台应用程序、Web应用程序)...

使用Visual Studio2019创建C#项目(窗体应用程序、控制台应用程序、Web应用程序)一、VS的开发环境首先你得安装了vs2019,然后确认下下面三个组件是否存在,如果没有要下载一下。vs2019的安装可参考visual studio2019的安装以及使用。二、创建C#窗体应用程序打开vs可以直接在搜索框输入关键字进行搜索,选择 Windows 窗体应用(.NET Framework)...

weixin_42360953的博客 4623

程序员用linux还是win,如何从程序员的角度看Linux和windows的对比?

本人在Unix SYS5,DOS,Windows3。x,windows9。x/NT 和Linux几个不同时期流行的OS上写过程序。在Linux和windows的对比中,我主要是从一个程序员的角度来看的。一 系统架构的对比1 内核(1) 内核的弹性Linux的内核表现出了高度的可配置性和独立性,主要是完成:IO驱动设备管理,TCP/IP,以及任务调度。Linux的标准内核发布版本有40~50MB,而...

weixin_30856391的博客 921

为什么 Win 叫 Admin, Linux 叫 root?

操作系统的很多细节,其实都带着历史的痕迹。root但无论叫什么,它们都代表系统的最高控制权限。

顺其自然~专栏 220

OpenCode终端智能体框架:可编程的AI技能运行时

终端智能体(Terminal Agent)是一种基于事件驱动、深度集成Shell环境的AI自动化范式,其核心原理是将命令执行流、工作目录、输出文本等作为实时感知信号,交由轻量级脚本进行上下文判断与动作决策。相比传统IDE插件或聊天式终端助手,它具备更强的状态感知能力与低侵入性工程价值,适用于自动化运维、Git工作流增强、CI/CD合规检查等需‘理解终端意图’的场景。OpenCode正是这一范式的开源实现,以JavaScript/TypeScript定义技能(Skill),依托LLM增强逻辑判断,构建终端原生

weixin_33738982的博客 394

Tabby终端:跨平台SSH管理与现代化终端配置全攻略

终端是开发者和运维人员日常工作的核心界面,其效率直接影响生产力。传统终端工具往往功能单一、体验割裂,难以满足现代化工作流需求。随着跨平台开发和远程协作成为常态,一个集成本地Shell与远程连接管理、支持高度定制化的终端工具显得尤为重要。这类工具通过集成SSH客户端、分屏操作、主题定制和插件扩展等特性,能够将终端从基础命令行窗口升级为统一的生产力控制中心。本文以Tabby为例,深入解析如何通过配置现代化终端环境,实现从本地开发到远程服务器管理的无缝衔接,提升SSH连接管理效率和跨平台工作流的一致性。

weixin_33938733的博客 442

win7下linux 双系统安装教程,【系统安装】双系统——Win7下安装linux系统详细步骤...

【preface】html1. 在Win7下安装linux系统以前,若是以前安装过linux系统,可能会遇到须要从新安装的问题。linux由于linux系统是安装在win7系统下的一个系统盘分区中,若是须要卸载linux直接把分区删除就能够了,但仍是须要注意修复启动项的问题。ubuntu2. 另外,安装linux系统有不少方法,这里选择的是U盘启动安装的方式。windows【双系统win7下卸载l...

weixin_28676289的博客 7024
上一篇: (转)typedef用法小结
下一篇: 一个可以计算表达式的计算器
RICH_BABA
博客等级 码龄17年 51粉丝 17原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值