惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

月光博客
月光博客
IT之家
IT之家
Hugging Face - Blog
Hugging Face - Blog
J
Java Code Geeks
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 叶小钗
MyScale Blog
MyScale Blog
G
Google Developers Blog
Microsoft Azure Blog
Microsoft Azure Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
大猫的无限游戏
大猫的无限游戏
博客园 - 三生石上(FineUI控件)
Google DeepMind News
Google DeepMind News
Engineering at Meta
Engineering at Meta
The Cloudflare Blog
Martin Fowler
Martin Fowler
酷 壳 – CoolShell
酷 壳 – CoolShell
N
Netflix TechBlog - Medium
MongoDB | Blog
MongoDB | Blog
I
InfoQ
WordPress大学
WordPress大学
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
H
Help Net Security

Haku

克兰奇杀妻案 | Haku DIVING INTO HK | Haku 无能的 DeepSeek 不会安装 Neovim 插件 | Haku 试图使用 Ungoogled Chromium | Haku 屋漏偏逢连夜雨 | Haku 石油障碍症 | Haku 好玩,大数据杀熟 | Haku 给 Waline 前端加了人机验证 | Haku 被忽略的问题 | Haku 给 Waline 做自己的通知邮箱! | Haku 排版的艺术:一条很长很长的路 | Haku 最近我在干些什么还有聊天还有一个久违的双休 | Haku 各 Markdown 编辑器的使用体验 | Haku Astro 解决代码块的文件名重叠,附带测试工程师笑话 | Haku 简单记一记如何解决切换主题时的明暗闪烁 | Haku 分析一段精妙的地球 JavaScript 代码 | Haku 程序设计#5 - 二分查找 | Haku 程序设计#4 SP 接雨水的四种解法 | Haku 程序设计#4%2 - 【经典算法】双指针和滑动窗口·第三部分 | Haku 程序设计#4%1 - 【经典算法】双指针和滑动窗口·第二部分 | Haku 让你的 VS Code 也能写 C++ | Haku 我对各种字体的看法(Go 语言版) | Haku 程序设计#4 - 【经典算法】双指针和滑动窗口·第一部分 | Haku 大半夜听了寂静岭之后 | Haku 程序设计#3%2 - 算法的复杂度 | Haku 程序设计#3%1 - 面向对象程序设计 | Haku 程序设计#3 - 结构体和数据结构入门 | Haku 程序设计#2 - 序列入门和缓冲输入输出 | Haku 程序设计#1 - 流程控制 | Haku 程序设计#0 - 前期准备 | Haku
一个让在 UVa 写题目更方便的 VSCode 设置 | Haku
Karlbaey · 2025-12-13 · via Haku
← 返回首页

发布于 2025年12月13日 16:43 作者 Karlbaey

前面的碎碎念

最近我在练习老古董网站 UVa https://onlinejudge.org

这个网站已经古老到:

_
_

编译选项只支持 C、Java、C++ 以及 Pascal,其中唯一的解释型语言甚至用的是相对过时的 Python 3.5.1。

而且甚至有一个历史遗留参数 -lcrypt,它在现在的 MinGW1 上是找不到的。

DeepSeek 给出的解释:

——
——

现在 UVa OJ 还叫做 UVa OJ,uHunt 更像是 UVa 使用的一个社交平台。

所以,因为我使用的 GNU Compiler Collection 版本是 15.2.0,就需要在 VSCode 中自己设置一下编译选项。

开始配置 ⚙️

之前简要地写过一篇 blog 记录用 VSCode 写 C++。

https://re.karlbaey.top/articles/to-let-your-vs-code-support-cpp/

我们仍然是在 Code Runner 这一插件中做手脚,如下所示。

// 原文中的配置
{
  "code-runner.executorMap": {
    "cpp": "cd /d $dir && g++ -fexec-charset=GBK $fileName -o $fileNameWithoutExt && .\\$fileNameWithoutExt.exe"
    // 其余省略
  }
}

现在把它改成这样:

{
  "cpp": "cd /d $dir\ng++ -std=c++11 -O2 $fileName -o rel.exe\n.\\rel.exe < input.txt > output.txt"
}

这里其实是执行了 3 条命令。

cd /d $dir
g++ -lm -O2 -std=c++11 -pipe -DONLINE_JUDGE $fileName -o rel.exe
.\rel.exe < input.txt > output.txt
  1. 进入文件所带目录(顺便更换盘符)。
  2. 使用 UVa 提供的参数编译文件。
  3. 将标准输入调整为文件 input.txt,标准输出调整为文件 output.txt

只要在源代码所在的目录新建一个文件 input.txt,然后把测试样例写进去,这样 VSCode 就会自动测试好并把结果存进 output.txt 中了2

UVa_490_-_Rotating_Sentences 试试看。

_
_

接着在写好的 UVa_490_-_Rotating_Sentences.cpp 文件窗口内按下 Ctrl +

_
_

什么都没有发生。打开 output.txt 看看。

_
_

太多就不一一展示了。

这样就算配置好了。上面提供的 Code Runner 配置亲测可用,可以直接粘贴到 settings.json 里。


喜报:过了!

_
_