O código abaixo basicamente serve para criar um comando próprio chamado "renomeiaDir", eu poderei dar dois parâmetros para ele "renomeiaDir <Diretório Origem> <Diretório Destino>. Essa parte está ok, porem precisarei depois criar mais comandos, e para cada comando precisarei criar um IF, e para entrar no IF criei um while que deve ler a primeira string e guardar na variável "SC", essa variável receberá o comando e será comparado com as variáveis que estão em Comandos, se for igual entra no IF e executa o restante dos parâmetros. Porem esse while e/ou a comparação tem alguma coisa que não estou entendendo que não deixa entrar no IF.
Obrigado pelo auxílio.
#include<stdio.h>#include<stdlib.h>#include<string.h>#include<ctype.h>int main(){//VARIÁVEIS GLOBAIS ==================================char cmd01[60];//char sourceFile[1024];//char destFile[1024];char letra;char SC[50];int contador =1;int quantidade_comandos =1;char matriz_de_comandos[quantidade_comandos][50];//==================================================//COMANDOS GERAIS ==================================char renomearDir[50]="renomearDir:";//Aqui seria o conteudo da string para comparar e entrar no ifchar exit[10]="exit\n";//A comparacao do exit para entrar no IF funciona//==================================================
printf("ht-C0mmand >> ");
fflush(stdin);
fgets(cmd01,60, stdin);while(cmd01[contador]!='\0'){//Aqui separar a string renomearDir e guarda na variavel SC
SC[contador]=cmd01[contador];
contador++;}
printf("|DEBUG: Executed command > %s\n", SC);
printf("|DEBUG: Command > %s\n", exit);
printf("|DEBUG: Command > %s\n", renomearDir);// RENOMEAR ARQUIVO =============================================================if(strcmp(SC, renomearDir)==0){//Aqui teria que comparar o conteúdo, se for igual retorna zero e entra no if, mas não acontece
printf("Debug| NO IF\n");//Porem se trocar para 1, queé o retorno de string diferente, ele entra, então seria somenteint contador_comandos =1;//a comparacao que tem algo que eu ainda não pegueiint contador_letras =0;for(contador=0; contador < strlen(cmd01)-1; contador++){
letra = cmd01[contador];if(letra ==' '){
matriz_de_comandos[contador_comandos-1][contador_letras]='\0';
contador_comandos++;
contador_letras =0;continue;}
matriz_de_comandos[contador_comandos-1][contador_letras]= letra;
contador_letras++;}
matriz_de_comandos[contador_comandos-1][contador_letras]='\0';// BACKUP strcpy(sourceFile, matriz_de_comandos[0]);
strcpy(sourceFile, matriz_de_comandos[quantidade_comandos]);
printf("Debug | first path> %s \n", sourceFile);
strcpy(destFile, matriz_de_comandos[quantidade_comandos+1]);
printf("Debug | second path> %s \n", destFile);
rename (sourceFile, destFile);}//===============================================================================// EXIT =========================================================================if(strcmp(SC, exit)==0){
printf("SAINDO!\n=====");}
system("pause");}
Pergunta
juan_hunterjn@hotmail.com
Boa tarde,
O código abaixo basicamente serve para criar um comando próprio chamado "renomeiaDir", eu poderei dar dois parâmetros para ele "renomeiaDir <Diretório Origem> <Diretório Destino>. Essa parte está ok, porem precisarei depois criar mais comandos, e para cada comando precisarei criar um IF, e para entrar no IF criei um while que deve ler a primeira string e guardar na variável "SC", essa variável receberá o comando e será comparado com as variáveis que estão em Comandos, se for igual entra no IF e executa o restante dos parâmetros. Porem esse while e/ou a comparação tem alguma coisa que não estou entendendo que não deixa entrar no IF.
Obrigado pelo auxílio.
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.