VS Code中如何解决“文件末尾无换行”及“未找到匹配项”问题?
解决VS Code中Code Runner运行C++的两个问题
问题1:warning: no newline at end of file [-Wnewline-eof] 警告无法消除
已经添加"files.insertFinalNewline": true和"files.trimFinalNewlines": true但无效的话,试试这些步骤:
- 针对C++文件单独配置设置:在
settings.json中添加
确保设置只针对C++文件生效,避免全局设置未覆盖到特定语言。"[cpp]": { "files.insertFinalNewline": true, "files.trimFinalNewlines": true } - 手动验证:打开报错的C++文件,手动在末尾添加一个空行,保存后重新运行,看警告是否消失。如果消失,说明之前的设置可能没正确应用,重启VS Code再试。
- 检查文件编码:部分特殊编码下自动加换行可能失效,确认文件编码为UTF-8(右下角状态栏可查看/修改)。
问题2:zsh:1: no matches found: 目标文件名 错误
这是zsh对含特殊字符(空格、括号、星号等)的文件名解析出错导致的,解决方法:
- 修改Code Runner的C++执行命令:在
settings.json中找到code-runner.executorMap里的cpp项,将生成的可执行文件名用双引号包裹,示例:
这样zsh会把带特殊字符的文件名当成完整字符串处理,不会解析为通配符。"code-runner.executorMap": { "cpp": "g++ $fullFileName -o \"$fileNameWithoutExt\" && ./"$fileNameWithoutExt"" } - 简化文件名:如果不需要特殊字符,直接将C++文件名改成不含空格、括号等符号的名称(比如把
test file.cpp改成test_file.cpp),也能避免这个问题。
内容的提问来源于stack exchange,提问作者anamusculita12
相关产品推荐
相关产品推荐

