Ir para o conteúdo
Upper

Problemas com arrays duplos

Mensagens Recomendadas

Upper    0
Upper

Boas tenho o seguinte codigo

void ler_palavras (int num, char chave[][MAX_WORD_LENGTH], char colocar[][MAX_WORD_LENGTH]) {
    int i=0,j=0, ind, k;
    while(i <= num)
    { 
      printf("%d palavra a substituir: ", (num+1));
      while(gets(chave[][MAX_WORD_LENGHT)!=1){
         printf("Erro na leitura\n");
         printf("%d palavra a substituir: ", (num+1));}
      printf("%d palavra a colocar: ", (num+1));
      while(gets(colocar[][MAX_WORD_LENGTH])!=1){
         printf("Erro na leitura\n");
         printf("%d palavra a colocar: ", (num+1));}
       i++;
    }
}

Quando compilo aparece.me erro nos dois ultimos whiles...alguem me pode dizer o que devo fazer?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Rui Carlos    311
Rui Carlos

Não estás a indicar a posição do array onde é suposto colocares o valor lido. Adicionalmente, chave[][MAX_WORD_LENGHT] é do tipo char, quando a função gets está à espera de um array, ou seja, devias ter chave[...] apenas.

Por último, usa a função fgets em vez da gets, e para a próxima coloca aqui o erro que obtinhas, pois pode ser útil para saber qual o problema.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Upper    0
Upper

void ler_palavras (int num, char chave[][MAX_WORD_LENGTH], char colocar[][MAX_WORD_LENGTH]) {
    int i=0,j=0, ind, k;
    while(i <= num)
    { 
      printf("%d palavra a substituir: ", (num+1));
      while(gets(chave[][MAX_WORD_LENGHT)!=1){
         printf("Erro na leitura\n");
         printf("%d palavra a substituir: ", (num+1));}
      printf("%d palavra a colocar: ", (num+1));
      while(gets(colocar[][MAX_WORD_LENGTH])!=1){
         printf("Erro na leitura\n");
         printf("%d palavra a colocar: ", (num+1));}
       i++;
    }
}

Ja corrigi o codigo, mas tenho que usar gets. Os erros sao falta algo antes dos pareteses rectos a fechar tanto do colocar como do chave e erro antes do primeiro fechar {

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Upper    0
Upper

void ler_palavras (int num, char chave[][MAX_WORD_LENGTH], char colocar[][MAX_WORD_LENGTH]) {
   int i=0,j=0;
   for(i=0; i <= num; i++)
   { 
      printf("%d palavra a substituir: ", (num+1));
      while(gets(chave[])!=1){
         printf("Erro na leitura\n");
         printf("%d palavra a substituir: ", (num+1));}
   
     printf("%d palavra a colocar: ", (num+1));
      while(gets(colocar[])!=1){
         printf("Erro na leitura\n");
         printf("%d palavra a colocar: ", (num+1));}
    }
}

Este e que e o codigo

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Rui Carlos    311
Rui Carlos

Já indiquei o problema anteriormente.

Não estás a indicar a posição do array onde é suposto colocares o valor lido.

Coloca chave[0] ou chave[ i], por exemplo (tens que ver qual o valor que deves colocar em função do teu objectivo).

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Baderous    31
Baderous

chave -> apontador para apontador de caracter (mais facilmente - matriz)

chave[a] -> string

chave[a][c] -> caracter

A função gets guarda o conteúdo lido numa string, logo...

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Upper    0
Upper

E que quem me deu este enunciado disse que

char chave[MAX_WORD][MAX_WORD_LENGTH];

em k o primeiro[] e coluna e deve ser sempre tratado como 0(neste caso so pode existir um espaço) o segundo [] e o comprimento do texto

por isso e que perguntei

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade