关于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()里面用"\". 展开
问题1:用scanf("%c",&a)输入一个盘符后.怎么用system()来进入盘符,为什么不能用system("%c:",a)来进入
问题2:当命令中出现"\"这个符号时,C就会检测到错误.比如system("md undel..\")这个设置当前文件夹为不可删除的命令不能执行.system("md undel..")就可以,但是实现的只是在当前目录建立一个名为undel的文件夹.
这个请问怎么解决.
第二个问题有点错了.不是设置当前文件夹为不可删除,只是建立一个名位undel.的不可删除文件夹.可是不加"\"就能删了.所以想问怎么在system()里面用"\". 展开
3个回答
展开全部
1.
char buff[10];
fprintf(buff,"%c:",a);
system(buff);
不能用system("%c:",a)是因为system接受字符串参数后并不把它当做格式化字符串。而scanf和fprintf是将第一个参数解释为格式化字符串的(并不是C的功能,而是在自己实现的。不过既然是标准库,将其看为C的一部分也可以)。
2.
system("md undel..\\");
就可以了。
双引号里的“\\”和上面的格式化字符串不一样,它是C的一部分。这个替换是在编译时完成的(上例是运行时完成)。"\\"通过这个语法,可以在字符串中插入“\”符号。
char buff[10];
fprintf(buff,"%c:",a);
system(buff);
不能用system("%c:",a)是因为system接受字符串参数后并不把它当做格式化字符串。而scanf和fprintf是将第一个参数解释为格式化字符串的(并不是C的功能,而是在自己实现的。不过既然是标准库,将其看为C的一部分也可以)。
2.
system("md undel..\\");
就可以了。
双引号里的“\\”和上面的格式化字符串不一样,它是C的一部分。这个替换是在编译时完成的(上例是运行时完成)。"\\"通过这个语法,可以在字符串中插入“\”符号。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询