【问题】会第三方的进来
bat吧
全部回复
仅看楼主
level 14
==========================
#include <stdio.h>
#include <stdlib.h>
int main(int argc, int *argv[])
{
if (argv[1]=="black")
{
system("color 0");
}
if (argv[1]=="blue")
{
system("color 1");
}
if (argv[1]=="green")
{
system("color 2");
}
if (argv[1]=="red")
{
system("color 4");
}
if (argv[1]=="purple")
{
system("color 5");
}
if (argv[1]=="yellow")
{
system("color 6");
}
if (argv[1]=="white")
{
system("color 7");
}
if (argv[1]=="gray")
{
system("color 8");
}
if (argv[1]=="lwhite")
{
system("color 16");
}
}
==========================
这个代码
我没加if就可以,加了就不可以了
大家来看看,帮我解决一下
2015年08月23日 08点08分 1
level 14
没人会吗?
2015年08月23日 11点08分 2
level 14
没人会吗?
2015年08月23日 11点08分 3
level 13
argv是char, argv[1]只有一个字符
2015年08月23日 11点08分 5
额,不是啊,我在后面这是数组,是可以相当于string的,比如 char a[]=“呵呵的”; printf("%s",a); 都可以
2015年08月23日 11点08分
level 13
/*是这样吗?*/
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
if (argv=="black")
system("color 0")
if (argv=="blue")
system("color 1")
if (argv=="green"
system("color 2")
if (argv=="red")
system("color 4")
if (argv=="purple"
system("color 5")
if (argv=="yellow")
system("color 6")
if (argv=="white")
system("color 7")
if (argv=="gray")
system("color 8")
if (argv=="white")
system("color 16")
return 0;
}
2015年08月23日 12点08分 7
不是,我没有定义argv,我只定义了argv这个数组,所以不可以这样,你没看那个的教程吗?https://tieba.baidu.com/p/3611651462
2015年08月23日 12点08分
回复 编程我可是第一 :那就把argv改成argv[0]
2015年08月23日 12点08分
回复
�ⲻ������ȡ��
:额,可是col也算一个,所以后面的参赛就是1了
2015年08月23日 12点08分
level 15
这个,数组索引不是从0开始的嘛……
2015年08月23日 12点08分 8
额,可是col也算一个,所以后面的参赛就是1了
2015年08月23日 12点08分
level 15
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
if (argv[0]=="black")
{
system("color 0");
}
if (argv[0]=="blue")
{
system("color 1");
}
if (argv[0]=="green")
{
system("color 2");
}
if (argv[0]=="red")
{
system("color 4");
}
if (argv[0]=="purple")
{
system("color 5");
}
if (argv[0]=="yellow")
{
system("color 6");
}
if (argv[0]=="white")
{
system("color 7");
}
if (argv[0]=="gray")
{
system("color 8");
}
if (argv[0]=="lwhite")
{
system("color 16");
}
}
//试试看
2015年08月23日 12点08分 9
额,可是col也算一个,所以后面的参赛就是1了
2015年08月23日 12点08分
level 7
c的数组是从0开始的,这是基本定义
   El Tdraynovit Akansoel!
   ——来自埃提兹数据终端163847007
2015年08月23日 12点08分 10
额,可是col也算一个,所以后面的参赛就是1了
2015年08月23日 12点08分
level 14
2015年08月23日 13点08分 11
差个小广告
2015年08月23日 13点08分
回复 编程我可是第一 :配色感人
2015年08月23日 15点08分
回复
�ⲻ������ȡ��
:额,我想把他搞为我可爱的小签名
2015年08月23日 15点08分
回复 编程我可是第一 :黑中黑。幸好我屏蔽了所有的签名档
2015年08月23日 15点08分
level 14
额,没人会吗
2015年08月23日 13点08分 12
level 14
argv[1]和"black"是两个指针...
这个时候应该用strcmp才对
if (strcmp(argv[1], "black") == 0) {
...
}
PS 这个错误我以前也犯过...
2015年08月23日 13点08分 13
额,谢谢了
2015年08月23日 13点08分
还有事不是应该#include <string.h>
2015年08月23日 13点08分
还有不是string.h学的不是太好
2015年08月23日 13点08分
。。。那个教程写的不是太好
2015年08月23日 13点08分
level 14
终于写好了!
2015年08月23日 15点08分 14
level 13
不知道string能不能case
2015年08月23日 15点08分 15
令人痛苦的是在C里面不能[不高兴]
2015年08月23日 15点08分
回复 aiwozhonghuaba :所以CPP好。C没有string吧
2015年08月23日 15点08分
回复
�ⲻ������ȡ��
:显然标准里没有.....
2015年08月23日 15点08分
c语言最头疼的就是没有string和工作域
2015年08月23日 16点08分
level 14
@编程我可是第一
你的C语言老师真逗, 还没有燐厉害(我在想象燐路过这里看到此贴笑而不语[滑稽])
作为一个C入门级的新手, 我知道:
"black"代表的不是一个字符串, 而是一个指向字符串常量"black"的指针
argv则是一个邪恶的二级指针
argv[1]降了一级, 但它还是一个指针
argv[1] == "black" 就是比较两个指针的值, 然而它们会相等吗?难以想象它们在何种幸福的情况下才会相等....
编译器应该会义正言辞地说
warning: comparison of distinct pointer types lacks a cast blablabla
你想要的结果应该是这个样子(如果指针不会越界的话...)
argv[1][0] == "black"[0] && argv[1][1] == "black"[1] && argv[1][1] == "black"[2] && argv[1][1] == "black"[3] && argv[1][1] == "black"[4]
然而这样实在是太丧病了...我们还是使用strcmp吧
2015年08月23日 15点08分 16
他不了解命令行
2015年08月23日 16点08分
回复
�����ҿ��ǵ�һ
:不了解bat
2015年08月23日 16点08分
2015年08月24日 02点08分
black不是一个指针啊?
2015年08月24日 02点08分
level 13
引入string,写成 char **argv,然后直接 string color = argv[1]; 你就可以用color直接比对了。
2015年08月23日 16点08分 17
关键就是c没有string
2015年08月24日 02点08分
1