把bat的内容用c语言写出来

来源:百度知道 编辑:UC知道 时间:2024/09/22 02:04:02
我用bat写了一个 qq发起临时会话的东西 是这样的:

@echo -------------> QQ 发起临时对话 <-------------
@echo.
@echo 请输入对方的 qq 号:
@echo off
set /p qq_number=
explorer "tencent://message/?uin=%qq_number%"

我想用c语言实现同样的功能

我是这样写的
#include "stdio.h"
#include "stdlib.h"

main ()
{
printf ("-------------> QQ 发起临时对话 <-------------\n\n");
printf ("请输入对方的 qq 号:\n");
system ("@echo off");
system ("set /p qq_number=");
system ("explorer "tencent://message/?uin=%qq_number%"");
}

好像是最后一行的引号出了问题,如果tencent://message/?uin=%qq_number%不加引号的话也不行,请问改怎么改?
正如大家所说,的确要在引号前加\
改成 system ("explorer \"tencent://message/?uin=%qq_number%\""); 后,还是运行不了
我的电脑用的是 c/c++程序设计学习与实验系统 ,换了dev-cpp后可以运行,应该是编译器的问题
最后十分感谢eachdoor在 百度hi 上耐心的回答。
追加50分

您好 要在引号前面加一个 \ 因为它在另一组引号中

这样写引号出问题很正常,因为定界混乱,编译器不认识system的参数从哪到哪,会出现编译错误。
要让编译器认识字符串内部的引号,需要用转义字符“\"”代替引号。这样编译器就会把这里当作纯粹的引号,而不是字符串的边界。
改好的程序:
#include <stdio.h>
#include <stdlib.h>

int main()
{
puts("-------------> QQ 发起临时对话 <-------------\n");
printf("请输入对方的 QQ 号:\n");
system("@echo off");
system("set /p qq_number=");
system("explorer \"tencent://message/?uin=%qq_number%\"");
return 0;
}
----
[原创回答团]

explorer后面的引号"前面要加个杠杠吧
像这样: \"

这么改:
system ("explorer "tencent://message/?uin=%qq_number%"");
改为:
system ("explorer \"tencent://message/?uin=%qq_number%\"");
在C中,用\"表示字符"