关于C语言执行CMD命令的问题

问几个新手问题,C语言中可以用system("命令")来执行CMD命令问题1:用scanf("%c",&a)输入一个盘符后.怎么用system()来进入盘符,为什么不能用... 问几个新手问题,C语言中可以用system("命令")来执行CMD命令
问题1:用scanf("%c",&a)输入一个盘符后.怎么用system()来进入盘符,为什么不能用system("%c:",a)来进入

问题2:当命令中出现"\"这个符号时,C就会检测到错误.比如system("md undel..\")这个设置当前文件夹为不可删除的命令不能执行.system("md undel..")就可以,但是实现的只是在当前目录建立一个名为undel的文件夹.
这个请问怎么解决.
第二个问题有点错了.不是设置当前文件夹为不可删除,只是建立一个名位undel.的不可删除文件夹.可是不加"\"就能删了.所以想问怎么在system()里面用"\".
展开
 我来答
ntysdd
推荐于2016-02-22 · 超过14用户采纳过TA的回答
知道答主
回答量:30
采纳率:0%
帮助的人:0
展开全部
1.
char buff[10];
fprintf(buff,"%c:",a);
system(buff);
不能用system("%c:",a)是因为system接受字符串参数后并不把它当做格式化字符串。而scanf和fprintf是将第一个参数解释为格式化字符串的(并不是C的功能,而是在自己实现的。不过既然是标准库,将其看为C的一部分也可以)。

2.
system("md undel..\\");
就可以了。
双引号里的“\\”和上面的格式化字符串不一样,它是C的一部分。这个替换是在编译时完成的(上例是运行时完成)。"\\"通过这个语法,可以在字符串中插入“\”符号。
匿名用户
2009-12-03
展开全部
问题1,要用绝对路径,否则就认为是在当前目录中的。

问题2,单独的\会和后面的字符一起被系统理解为是转义字符,不会解释为斜线,要用斜线,就写成\\
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
miniappoomR2mMY9jhqH
2009-12-03 · TA获得超过353个赞
知道小有建树答主
回答量:452
采纳率:100%
帮助的人:148万
展开全部
md只对它的工作路径起作用。
改变它的工作路径。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式