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

使用C语言system()函数打开记事本文件:Dev C++正常Turbo C报非法命令错误

问题分析与解决方案

我来帮你搞定这个问题,咱们一步步拆解:

首先先纠正代码里的一个小细节:C语言是大小写敏感的,你写的System()应该是小写的system()——不过看起来Dev C++可能在某些环境下兼容了这个错误,但Turbo C对语法要求更严格,这是个潜在问题,先改过来。

接下来是核心原因:Turbo C是非常老旧的编译器,它运行在DOS环境(或者DOSBox模拟的DOS环境)里,而DOS的命令规则和Windows的CMD完全不一样:

  • 在Windows CMD里,直接输入一个文件路径(比如C:\Example.txt),系统会自动调用关联的默认程序(比如记事本)打开它;
  • 但在DOS里,这个命令是无效的——DOS没有自动关联程序打开文件的机制,你必须明确告诉它要用哪个程序来打开文件。

所以修正后的代码应该是这样的:

#include<stdio.h>
#include<stdlib.h>  // 必须包含这个头文件,Turbo C里system()的声明在这里
void main() {
    // 明确调用记事本程序打开文件
    system("notepad.exe C:\\Example.txt");
}

额外补充几个注意点:

  • 如果你的DOS环境里找不到notepad.exe(比如纯DOS系统,不是Windows下的DOS窗口),可以用DOS自带的edit命令替代:system("edit C:\\Example.txt")
  • 也可以写notepad.exe的完整路径,比如system("C:\\WINDOWS\\NOTEPAD.EXE C:\\Example.txt"),确保系统能找到这个程序
  • 别忘了stdlib.h头文件,Turbo C不会自动包含它,缺少的话可能会出现函数未定义的错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:44:18