Jump to content
Fórum Script Brasil
  • 0

O sistema não pode encontrar o arquivo especificado


wrodrigounb

Question

a) Construção com inserção dos elementos no início da lista

Neste caso, cada dado lido do arquivo é inserido no começo da lista. Dessa forma, a

ordem dos elementos na lista fica invertida em relação à ordem original do arquivo. A função

recebe como parâmetro o endereço do ponteiro pinicio, que aponta para o início da lista.

#include<stdio.h>

struct elemento {
     char dado;
     struct elemento *prox, *ant;
     };     
  
void construir1(struct elemento **pinicio);  
   
int main void() {
    struct elemento *pinicio;
    construir1(&pinicio);      


return 0;
}  
  

void construir1(struct elemento **pinicio) {
     FILE *arq;
     struct elemento *p1;
     char c;
             
     arq = fopen ("t1.txt", "r");
     *pinicio = NULL;
     while ((c = getc (arq)) != EOF) {
           if (c != '\n'){
           p1 = malloc (sizeof (struct elemento));
           p1->dado = c;
           p1->prox = *pinicio;
           }
           if (*pinicio != NULL) {
           (*pinicio)->ant = p1;
           p1->ant = NULL;
           *pinicio = p1;
           }
     }
fclose (arq);

return;

}

Não entendo porque o compilador indica esse erro,alguém pode me ajudar?

Acredito que o programa não tenha erros.

W. Rodrigo

CiC - Universidade de Brasília

Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0

Essa questão de compilador é complicada mesmo,

mas execute o código a seguir no seu Devc++ que não terá problema.

#include<stdio.h>
#include <stdlib.h>



struct elemento {
     char dado;
     struct elemento *prox, *ant;
     };    
  
void construir1(struct elemento **pinicio);  
  
int main () {
    
    struct elemento *pinicio;
    construir1(&pinicio);      


return 0;
}  
  

void construir1(struct elemento **pinicio) {
     FILE *arq;
     struct elemento *p1;
     char c;
            
     arq = fopen ("t1.txt", "r+");
     *pinicio = NULL;
     
     while ((c = getc (arq)) != EOF) {
           if (c != '\n'){
           p1 =(struct elemento *) malloc (sizeof (struct elemento));
           p1->dado = c;
           p1->prox = *pinicio;
           }
           if (*pinicio != NULL) {
           (*pinicio)->ant = p1;
           p1->ant = NULL;
           *pinicio = p1;
           }
     }
fclose (arq);

return;

}

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...