Dust_ Posted March 30, 2012 at 05:59 PM Report #446667 Posted March 30, 2012 at 05:59 PM Boas. Criei agora conta pq um amigo meu recomendou-me vir aqui meter a minha dúvida. É uma cadeira de introdução a C que tenho e n estou a conseguir dar conta do recado :S A minha duvida é a seguinte: Como recebo vários parâmetros na consola e os utilizo? Isto pq vou receber vários caracteres que vão fazer determinadas coisas, por exemplo: " > gestcontas p o j o j p " cada caracter é uma conta especifica, "p" para conta a prazo, "o" para conta a ordem. E o "j" é para multiplicar pela taxa de juros. Mas eu n estou a perceber bem como fazer... Alguém aqui me pode ajudar? Abraço
pmg Posted March 30, 2012 at 06:13 PM Report #446674 Posted March 30, 2012 at 06:13 PM A funcao main pode receber dois argumentos que indicam a) quantos parametros no total existem b) os parametros (em texto) propriamente ditos Esses argumentos normalmente tem os nomes argc e argv (quaisquer nomes sao validos, mas usa os normais please) e os tipos int e char ** respectivamente. Portanto, para aceder aos parametros percorre o segundo argumento. Por exemplo #include <stdio.h> int main(int argc, char **argv) { int i; for (i = 1; i < argc; i++) { printf("parametro #%d: %s\n", i, argv[i]); } return 0; } E o resultado quando chamado com "executavel um dois tres" parametro #1: um parametro #2: dois parametro #3: tres Nota que nao usei o parametro argv[0] que corresponde (ma grande maioria dos casos) ao nome do executavel; nem usei o parametro argv[argc] pois este é, por definicao, NULL. O primeiro parametro é argv[1]; o ultimo parametro é argv[argc - 1]. What have you tried? Não respondo a dúvidas por PM A minha bola de cristal está para compor; deve ficar pronta para a semana. Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!
Dust_ Posted March 30, 2012 at 07:00 PM Author Report #446688 Posted March 30, 2012 at 07:00 PM Já tinha passado tanto tempo que perdi resposta que aqui escrevi :/ Pronto, percebi como faço para ficar com os valores num vector. obrigado 😕 Mas surgiu outra duvida... entretanto fui procurar, daí a demora, mas não encontrei uma solução :/ então eu agora queria comprar esse valor guardado no vector, com o "o" o "p" e o "j".
pmg Posted March 30, 2012 at 07:26 PM Report #446694 Posted March 30, 2012 at 07:26 PM As strings, em C, sao sempre terminadas por um '\0'. Se o input for a string "p", isso quer dizer que o primeiro caracter é o 'p' e o segundo caracter é o '\0'. Podes comparar os dois caracteres, assumindo que "p" foi o primeiro parametro, por exemplo assim if (argv[1][0] == 'p' && argv[1][1] == '\0') { /* primeiro parametro foi "p" } ou, equivalente mas usando as funcoes da bibiloteca if (strcmp(argv[1], "p") == 0) { /* primeiro parametro foi "p" } O strcmp() devolve 0 se as string forem iguais, outra coisa se forem diferentes. Nota que se o utilizador escrever "poj" (sem espacos) nem uma nem outra maneira vai 'descobrir' o "p". O input, neste caso, é argv[1][0] == 'p'; argv[1][1] == 'o'; argv[1][2] == 'j'; argv[1][3] == '\0'; What have you tried? Não respondo a dúvidas por PM A minha bola de cristal está para compor; deve ficar pronta para a semana. Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now