Jump to content

Ajuda com o readline.h


HIT_Braga
 Share

Recommended Posts

Boas.

Estou a tentar resolver um problema mas não arranjo maneira de dar a volta a isto.

#include<stdio.h>
#include<stdlib.h>
#include <readline/readline.h>
#include <readline/history.h>
#include <string.h>
int num_args(char *op)
{
int numero=0;
char *temp;
temp=strtok(op," ");
while (temp!=NULL)
{
numero++;
}
return numero;
}

int main ()
{
char *r;
int a;
r=readline("LETRAS: ");
a=num_args(r);
printf("Numero ARGS: %d",a);
}

Quero ler uma linha escrita pelo utilizador, e contar o número de argumentos introduzidos (tipo:" inserir 20 30", daria 3 argumentos , ou apagar 10 daria 2 argumentos, visto que são sempre separados por espaços).

Quero ficar com o número, e o comando que o utilizador escolheu.

Sem mais

HIT

" Elogios não me elevam, ofensas não me rebaixam, sou o que sou e não o que acham! "

Link to comment
Share on other sites

Boas

mudei o código como disseste axo:

#include <readline/history.h>
#include <string.h>
int num_args(char *op)
{
int numero=0;
char *temp;
temp = strtok (op," ");
  while (temp != NULL)
  {
numero++;
/*    printf ("%s\n",pch);*/
    temp = strtok (NULL, " ");
  }
  return numero;
}

int main ()
{
char *r;
int a;
r=readline("LETRAS: ");
a=num_args(r);
printf("Numero ARGS: %d E OPçÃO:%s\n",a,r);
}

Conta direito o numero de "argumento" mas modifica-me a variavel r.

resultado:

vadmin@ubuntu:~/testes$ ./teste

LETRAS: p 1 1

Numero ARGS: 3 E OPçÃO:p

" Elogios não me elevam, ofensas não me rebaixam, sou o que sou e não o que acham! "

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.