Boa noite, sou nova na programação em c++ e estou tendo uns probleminhas de dificuldade fácil. (pra vocês que já dominam). 😄
Bem, é o seguinte estou fazendo uma função que verifica os arquivos de uma determinada pasta, e pega os nomes dos mesmos e adiciona em um array. bom até ai tudo tranquilo.
eu cheguei a fazer sem problemas o codigo, inclusive, funcionando perfeitamente. porem meu professor pediu que usasse um array dinamico. e ai que começou os problemas.
para fazer esse array (vetor) eu usei a função malloc, porem aparece alguns erros no decorrer do codigo. e é ai que gostaria de ajuda de vocês.
em principal esses erros abaixo:
listdir.cpp|44|error: invalid conversion from 'char' to 'char*' [-fpermissive]|
stdio.h|295|note: initializing argument 1 of 'int sprintf(char*, const char*, ...)'|
listdir.cpp|56|error: invalid conversion from 'char' to 'const char*' [-fpermissive]|
string.h|49|note: initializing argument 1 of 'size_t strlen(const char*)'|
listdir.cpp|57|error: invalid conversion from 'char' to 'char*' [-fpermissive]|
listdir.cpp|5|note: initializing argument 1 of 'void verificarPalavra(char*, char*)'|
tentei fazer a conversão usando em todos os erros que deu a seguir, ai o programa compila, mas da erro ao executar e fecha. 🙁
(char *) vetor(mark)
abaixo segue o código da parte que esta dando erro.
// essa parte faz a leitura dos nomes na pasta e adiciona o nome dos arquivos em "vetor[]"while(( lsdir = readdir(dir))!= NULL ){
sprintf(vetor[mark],"%s\n",lsdir->d_name);// linha 44: erro aqui.
mark++;}//---- erro linha 56. essa parte faz uma verificação dentro do vetor para procuar tal arquivo/pasta. exemplo: supondo que em vetor[] tem uma pasta chamada "teste" ele percorre o vetor até encontrar, caso não encontre avisa que não tem esse arquivo.for(int a =0; a <= mark; a++){if(strlen(vetor[a])>9){// linha 56 erro: listdir.cpp|56|error: invalid conversion from 'char' to 'const char*' [-fpermissive]|
verificarPalavra(vetor[a],palavra);// aqui também da erro: listdir.cpp|57|error: invalid conversion from 'char' to 'char*' [-fpermissive]|
printf("%s,n%ld",vetor[a],TamanhoDoVetor);// aqui tb}}
na função malloc eu fiz:
vetor = (char*) malloc (sizeof(char));
e as variáveis:
char *vetor;
int mark = 0;
Se puderem dar uma forcinha, fico muito grata. obrigada.
Pergunta
carol15mg
Boa noite, sou nova na programação em c++ e estou tendo uns probleminhas de dificuldade fácil. (pra vocês que já dominam). 😄
Bem, é o seguinte estou fazendo uma função que verifica os arquivos de uma determinada pasta, e pega os nomes dos mesmos e adiciona em um array. bom até ai tudo tranquilo.
eu cheguei a fazer sem problemas o codigo, inclusive, funcionando perfeitamente. porem meu professor pediu que usasse um array dinamico. e ai que começou os problemas.
para fazer esse array (vetor) eu usei a função malloc, porem aparece alguns erros no decorrer do codigo. e é ai que gostaria de ajuda de vocês.
em principal esses erros abaixo:
listdir.cpp|44|error: invalid conversion from 'char' to 'char*' [-fpermissive]| stdio.h|295|note: initializing argument 1 of 'int sprintf(char*, const char*, ...)'| listdir.cpp|56|error: invalid conversion from 'char' to 'const char*' [-fpermissive]| string.h|49|note: initializing argument 1 of 'size_t strlen(const char*)'| listdir.cpp|57|error: invalid conversion from 'char' to 'char*' [-fpermissive]| listdir.cpp|5|note: initializing argument 1 of 'void verificarPalavra(char*, char*)'|
tentei fazer a conversão usando em todos os erros que deu a seguir, ai o programa compila, mas da erro ao executar e fecha. 🙁
(char *) vetor(mark)
abaixo segue o código da parte que esta dando erro.
na função malloc eu fiz:
vetor = (char*) malloc (sizeof(char));
e as variáveis:
char *vetor; int mark = 0;
Se puderem dar uma forcinha, fico muito grata. obrigada.
Link para o comentário
Compartilhar em outros sites
2 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.