c语言system函数的问题:

#include <stdlib.h>
#include <stdio.h>
void main() {
system("c:\\c.txt");
}
编译成功
运行后提示 bad command or file name.
请问怎么解决这个问题

" "里填的是dos命令 或者说是命令行命令

看样子你的编译器使用的system是老式的
除了不支持非可执行文件自动用关联程序打开(windows下的话 系统自动找关联程序)
文件名还要符合8.3格式追问

什么是8.3格式

追答

文件名8个字符扩展名3个字符内
你那什么系统?在命令行打dir /x试试

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-04-22
你要看看C盘是不是有c.txt了.追问

我的路径没错啊 专门在C盘建了一个c.txt文件

追答

那把notepad加上看看
system("notepad C:\\c.txt");

还有,确定你没有省略拓展名?比方说文件名实际上是c.txt.txt?

追问

可以了 不过能不能告诉一下 为什么要加 notepad
如果用system执行其他扩展名的文件怎么办呢

追答

我不清楚你的情况. 不过我自己电脑里面是不用加的. 我用的Win7

第2个回答  2011-04-22
system("notepad c:\\c.txt");追问

可以了 不过能不能告诉一下 为什么要加 notepad
如果用system执行其他扩展名的文件怎么办呢

追答

我来告诉你,dos所谓的命令分为两种,一种是内部命令,也就是cmd.exe这个程序能解析的命令,像dir, cd 就是这样。另外一种就是外部命令,其实就是可执行程序路径,比如qq,你可以在命令行里输入qq.exe的路径,然后qq就启动了,notepad c:\\c.txt这个命令是说启动记事本,c:\\c.txt这个当作参数传给记事本,这样记事本程序就打开这个txt文件了,你单独执行 system("c:\\c.txt"); 肯定是不行的,因为txt文件不是可执行程序

追问

最后再问一下,我改成system("e:\\Xmp4\\uninstall4.exe");(路径没错)也不能执行,但是在cmd下出入这个路径就可以执行,是怎么回事。还有system("e:\\e.bat");是有结果的,我把e.bat改了扩展名成为e.cmd,然后在程序中输入system("e:\\e.cmd")就又成了bad command or file name
【e.bat (或e.cmd)的内容是:“ipconfig/all“ 。】
辛苦您了

追答

ipconfig/all命令和参数间有空格吗?
第一个命令不能执行我也不太清楚怎么回事,可能是这个程序有某种限制,或者是杀毒软件拦截了这个操作。

C语言 system()函数打开一个程序,路径有空格的问题
system("c:\\\\\\"program files\\"\\\\a.txt");注意每个双引号前要有转义字符\\前缀

c语言中关于system函数调用参数问题
老大啊,system的参数是字符串,所以你这里的time也只是些字符罢了,和你设置的变量没关系 先用sprintf(strbuff,"shutdown -s -t %d", time);然后再system(strbuff);这里strbuff是char类型的数组。sprintf的具体用法可以谷歌或百度,很容易就能查到了 ...

c语言 system函数结束进程问题
system函数是通过cmd.exe来执行命令的 因此无论taskkill是否成功,只要cmd.exe成功启动并结束,system就会返回成功 因此要想获得taskkill是否成功,得用CreateProcess函数才行 system返回整数,成功是返回0,其他则表示有问题 但是这个成功是指执行cmd成功,并不一定指taskkill成功 但是对于cmd中间自带的命令,sys...

mac系统下c语言使用system();函数遇到的问题
system("pause");在linux和mac系统下会出现如题的错误 这是因为mac系统不认识 system("pause"); 这条语句,改为:pause();即可在mac系统下实现保留控制台的效果。另外system(cls);也起不了清屏的作用,改为system(clear);

请教C语言中调用系统函数时,为什么总是提示无法打开system.h 啊?
先搜索一下,看有没有system.h,看它在哪个文件夹,查环境变量INCLUDE指向的路径.(1)有的编译器或这种C语言没有system.h (2)#include <system.h> 要用尖括号 (3)如果system.h 所在文件夹,不在环境变量INCLUDE指向的文件,而是它的下层,则要加上相对路径,例如<sys\/system.h>.这要根据你的具体情况...

关于system占cpu问题
1、右键点击开始菜单,打开计算机管理页面;2、在计算机管理页面中打开计算机“服务”界面;3、在计算机“服务”界面列表中找到Superfetch服务;4、双击Superfetch服务,把服务的启动类型由“自动”改为“手动”,然后保存退出;5、重新启动电脑,你的System进程就恢复正常了。需要注意的是,在进行上述操作时...

C语言使用system()函数时程序进程问题
system() 只是执行一条 DOS 命令。你要它执行什么命令,怎样执行命令,你要正确写出。system() 不是打开文件,关闭文件。打开文件 可用 fopen().如果你的意思 是 用 notepad 打开文件,用 system() 调 DOS 命令:system("notepad outPut.txt");如果你的意思 是 开一个新 窗,执行 一堆...

关于c语言的system()函数
1,test不是dos命令 2,test.exe才是文件名 3,start xxx.xxx才是启动某个文件的dos命令 system("start test.exe");system("pause");return 0;警告:运行的时候做好电脑崩溃的心理准备!!!

C语言中怎么用system()函数打开一个可执行文件?
system()的输入参数是一个字符串,这个函数的作用就是在命令行下以命令的形式执行这个字符串。如“C:\\a.exe”在命令行下是可以直接运行的,所以直接填到参数里就行了。不过需要注意的是,字符串作为参数的时候“\\”要做一下转义,要变成“\\\\”才行。

C语言中system(“taskkill\/im ...”)后面为什么不能用个变量?_百度知 ...
C语言中的system函数,是执行系统命令的接口。声明于stdlib.h,形式为 int system(char *cmd);该函数执行时,会执行系统shell的指令,与在命令行直接键入cmd的内容是相同的。这个函数对参数是否为变量并没有要求,事实上,在C语言中,没有任何一个函数要求参数必须为常量,每个函数的参数均可以是变量。...

相似回答