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

Mac下VS Code集成终端多行输入时输出穿插问题求助

Mac上VS Code集成终端粘贴多行输入时输出与输入穿插的解决方案

问题重现

在完成CF Round 900 (Div.3) C题时,遇到以下异常:Mac系统下VS Code集成终端粘贴多行输入后,程序输出会穿插在输入内容中,但外接终端运行程序完全正常,Python程序也出现相同问题。

测试输入

12
5 3 10
5 3 3
10 10 55
6 5 20
2 1 26
187856 87856 2609202300
200000 190000 19000000000
28 5 2004
2 2 2006
9 6 40
47202 32455 613407217
185977 145541 15770805980

集成终端显示效果

12
5 3 10
5 3 3
10 10 55
6 5 20
2 1 26
187856 8785YES
NO
YES
YES
NO
6 2609202300
200000 190000 19000000000
28 5 2004
2NO
YES
NO
 2 2006
9 6 40
47202 32455 613407217
185977 145541NO
NO
YES
 15770805980
YES

测试代码(Java)

import java.util.*;
import java.io.*;

public class C {

    public static void main(String[] args) throws IOException{
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        int T = Integer.parseInt(in.readLine());
        for (int t = 0; t < T; t ++) {
            StringTokenizer st = new StringTokenizer(in.readLine());
            float n = Float.parseFloat(st.nextToken());
            float k = Float.parseFloat(st.nextToken());
            float x = Float.parseFloat(st.nextToken());
            if ((x<(k/2*(1+k)))||(x>k/2*(2*n-k+1))) {System.out.println("NO");}
            else {System.out.println("YES");}
        }
    }
}

解决方案

方案1:启用VS Code集成终端的粘贴括号功能

  • 打开VS Code设置(快捷键Cmd + ,)
  • 搜索 terminal.integrated.enablePasteBracketing,确保选项设置为true
  • 重启VS Code集成终端(点击终端面板垃圾桶图标重新打开)

方案2:配置Shell的粘贴括号支持(以zsh为例)

Mac默认使用zsh,若方案1无效,可修改zsh配置:

  1. 执行命令打开配置文件:open ~/.zshrc
  2. 在文件末尾添加:
    autoload -Uz bracketed-paste-magic
    zle -N bracketed-paste bracketed-paste-magic
    
  3. 保存后执行source ~/.zshrc使配置生效
  4. 重启VS Code集成终端

方案3:切换集成终端的Shell类型

若zsh仍有问题,可尝试切换为bash:

  • 打开VS Code设置,搜索terminal.integrated.defaultProfile.osx
  • 将默认Shell改为bash
  • 重启集成终端后测试

额外代码优化提示(算法竞赛相关)

代码中使用float处理大整数会导致精度丢失(如2609202300超出float精确表示范围),建议改用long类型并使用整数运算避免溢出:

import java.util.*;
import java.io.*;

public class C {

    public static void main(String[] args) throws IOException{
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        int T = Integer.parseInt(in.readLine());
        for (int t = 0; t < T; t ++) {
            StringTokenizer st = new StringTokenizer(in.readLine());
            long n = Long.parseLong(st.nextToken());
            long k = Long.parseLong(st.nextToken());
            long x = Long.parseLong(st.nextToken());
            long min = k * (k + 1) / 2;
            long max = k * (2 * n - k + 1) / 2;
            if (x < min || x > max) {
                System.out.println("NO");
            } else {
                System.out.println("YES");
            }
        }
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 17:56:01