我在C.STRCMP未能正确
使用strcmp
我试图用strcmp
比较程序的论点,但即使字符串是相同的它不工作遇到麻烦比较字符串。这是代码的一部分。
while(strcmp(argv[i], "-e") != 0)
因此,对于I = 11,如果我打印的argv[i]
值我得到
printf("String %s i %d", argv[i],i);
>> String -e i 11
但同时不断去。任何想法为什么发生这种情况?
代码:
while(strcmp(argv[i], "-e") != 0 || i != argc)
{
printf("String %s i %d", argv[i],i);
if(!isdigit((unsigned char)*argv[i]) && strcmp(argv[i], "-t") != 0)
{
archivo = fopen(argv[i] , "r");
TOT_IMG = TOT_IMG + 1;
for(t=0;t<NUM_FUNC_TRAZO;t++)
{
for(d=0;d<NUM_FUNC_DIAMETRICA;d++)
{
for(c=0;c<NUM_FUNC_CIRCO;c++)
{
if (fscanf(archivo, "%s",el) != EOF)
{
par->vector_circo[t][d][c] = strtod(el,NULL);
par->clase = clase;
}
else
{
break;
}
}
}
}
par_temp = par;
par->siguiente = (parametros_lista) malloc(sizeof(parametros_elem));
par = par->siguiente;
par->anterior = par_temp;
}
else
{
if(strcmp(argv[i], "-t") != 0)
{
clase = atoi(argv[i]);
CLASES = CLASES + 1;
}
}
i = i + 1;
}
当然你没有忘记'我++;'? – 2013-03-22 21:54:40
粘贴完整的代码而不是两个摘录,没有解释它们如何连接。 – 2013-03-22 21:55:04
不,我用调试器跟踪我的价值,这很好。我会发布其余的代码。 – Atirag 2013-03-22 21:56:36