Εμφάνιση 1-5 από 5
  1. #1
    Εγγραφή
    19-04-2010
    Μηνύματα
    97
    Downloads
    0
    Uploads
    0
    ISP
    ΟΤΕ Conn-x
    DSLAM
    ΟΤΕ - ΑΓ. ΠΑΡΑΣΚΕΥΗ
    Καλησπερα! Εχω ενα αρχειο txt με τα δεδομενα:
    Ε01 2
    Ε02 2
    Ε03 3
    Ε04 2
    Ε05 3

    Θελω να διαβαζω το αρχειο αυτο και να γεμιζω (μια λιστα; ) ως εξης: αφου το Ε01 εχει τον αριθμο 2 απο διπλα,να περναω στη λιστα το Ε01 2 φορες, το ιδιο και για τα υπολοιπα. Θέλω,δηλαδη,στο τελος να φτιαξω μια λιστα η οποια να ειναι καπως ετσι:
    Ε01 Ε01 Ε02 Ε02 Ε03 Ε03 Ε03 Ε04 Ε04 Ε05 Ε05 Ε05

    Καθε βοηθεια δεκτή. Αν δεν ειναι αναγκαιο να γινει κατι τετοιο με λιστα, ή αν υπαρχει καποιος ευκολοτερος τροπος, επισης δεκτός. Φαντάζομαι ομως οτι το καλυτερο για να υλοποιηθει κατι τετοιο ειναι η λιστα, μια και θελω να διαγραφω σιγα-σιγα αυτα τα Ε01, Ε02 κτλ.

  2. #2
    Εγγραφή
    19-04-2010
    Μηνύματα
    97
    Downloads
    0
    Uploads
    0
    ISP
    ΟΤΕ Conn-x
    DSLAM
    ΟΤΕ - ΑΓ. ΠΑΡΑΣΚΕΥΗ
    Παραθετω τον κωδικα που εχω γραψει μεχρι στιγμης:

    Κώδικας:
    #include <stdio.h>
    #include <stdlib.h>
    char temp;
    char on_erg;
    int i,j;
    int plithos_erg;
    char ergasia[3];
    
    struct ergasies
        {char erg[3];
         struct ergasies *next;
        }*head,*tail,*new,*tempor;
    
    main()
    {
    
        head=tail=NULL;
    
        FILE *fp;
        char fname[15];
        printf("Enter file name to load:");
        scanf("%s",fname);
    
         while ((temp=getchar())!='\n');
        if ((fp =fopen(fname, "r")) ==NULL)
        {
          printf("no file");
          system("pause");
          exit(1);
        }
    
    
       while((temp=getc(fp)!=EOF))
    {fgets(ergasia,4,fp);
       fscanf(fp,"%d",&plithos_erg);
    
       for(j=0;j<plithos_erg;j++)
       {
    
           new=(struct ergasies*)malloc(sizeof(struct ergasies));
           if(new==NULL)
           {printf("Memory allocation error");
            exit(1);}
          new->erg[0]=ergasia[0];
          new->erg[1]=ergasia[1];
          new->erg[2]=ergasia[2];
          new->next=NULL;
    
          if(head==NULL)
          {
            head=tail=new;
          }
          else
    
          {tail->next=new;
           tail=new;}
    
       }
    }
      fclose(fp);
          printf("Lista ergasiwn:\n");
          tempor=head;
          while(tempor!=NULL)
           {for(i=0;i<3;i++)
            printf("%c",tempor->erg[i]);
            printf(" ");
            tempor=tempor->next;}
    
    }
    Το προβλημα μου ειναι το εξης: Μου "τρωει" τον πρωτο χαρακτηρα του αρχειου,δλδ το πρωτο "Ε". Πώς μπορω να το φτιαξω αυτο;

  3. #3
    Εγγραφή
    19-03-2009
    Περιοχή
    ΗΡΑΚΛΕΙΟ ΚΡΗΤΗΣ
    Ηλικία
    48
    Μηνύματα
    288
    Downloads
    0
    Uploads
    0
    Κώδικας:
    #include <stdio.h>
    #include <stdlib.h>
    char temp;
    char on_erg;
    int i,j;
    int plithos_erg;
    char ergasia[3];
    
    struct ergasies
        {char erg[3];
         struct ergasies *next;
        }*head,*tail,*new1,*tempor;
    
    int main(){
        head=tail=NULL;
    
        FILE *fp;
        char fname[15];
        printf("Enter file name to load:");
        scanf("%s",fname);
        while ((temp=getchar())!='\n');
        if ((fp =fopen(fname, "r")) ==NULL){
          printf("no file");
          getchar();
          exit(1);
        }
        while(!feof(fp)){
            fscanf(fp,"%s %d",ergasia,&plithos_erg);
            if (feof(fp))
                break;
            for(j=0;j<plithos_erg;j++){
                new1=(struct ergasies*)malloc(sizeof(struct ergasies));
                if(new1==NULL){
                    printf("Memory allocation error");
                    getchar();
                    exit(1);
                }
                new1->erg[0]=ergasia[0];
                new1->erg[1]=ergasia[1];
                new1->erg[2]=ergasia[2];
                new1->next=NULL;
                if(head==NULL)
                    head=tail=new1;
                else{
                    tail->next=new1;
                    tail=new1;
                }
            }
        }
        fclose(fp);
        printf("Lista ergasiwn:\n");
        tempor=head;
        while(tempor!=NULL){
            for(i=0;i<3;i++)
                printf("%c",tempor->erg[i]);
            printf(" ");
            tempor=tempor->next;
        }
        getchar();
    
    }

  4. #4
    Εγγραφή
    31-01-2009
    Περιοχή
    ν κοσμος
    Ηλικία
    36
    Μηνύματα
    744
    Downloads
    0
    Uploads
    0
    Τύπος
    Other / Άλλο
    Ταχύτητα
    8.191/381
    ISP
    Conn-x OTE
    DSLAM
    ΟΤΕ - Ν. ΣΜΥΡΝΗ
    Router
    Ομορφο σα και
    SNR / Attn
    29,0(dB) / 11/4(dB)
    Δες αυτο
    Κώδικας:
    int main()
    {
    	node n;
    	FILE *fp = fopen("G:\\tt.txt","r");
    	
    	while(fscanf(fp,"%3s %d\n",n.szCode,&n.nTimes) != EOF)
    		printf("%s %d\n",n.szCode,n.nTimes);
    	fclose(fp);
    	return 0;
    }
    Edit: [
    Κώδικας:
    typedef struct
    {
    	char	szCode[4];
    	int		nTimes;
    }node;
    ]

  5. #5
    Εγγραφή
    19-04-2010
    Μηνύματα
    97
    Downloads
    0
    Uploads
    0
    ISP
    ΟΤΕ Conn-x
    DSLAM
    ΟΤΕ - ΑΓ. ΠΑΡΑΣΚΕΥΗ
    Ευχαριστω πολυ για τις απαντησεις, τωρα δουλευει μια χαρα!

Παρόμοια Θέματα

  1. Προβλημα με διαβασμα απο αρχειο σε πινακα στη C
    Από ambageo στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμού
    Μηνύματα: 13
    Τελευταίο Μήνυμα: 25-11-10, 12:37
  2. c++ Γέμισμα vectors 2D απο αρχείο. τεχνιικη βοήθεια
    Από nt5352 στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμού
    Μηνύματα: 14
    Τελευταίο Μήνυμα: 27-10-09, 11:34
  3. Διάβασμα δεδομένων από αρχείο txt με SQL και αναβάθμιση πίνακα
    Από berta στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμού
    Μηνύματα: 2
    Τελευταίο Μήνυμα: 29-07-09, 09:47
  4. Διάβασμα από αρχείο.
    Από Sayer στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμού
    Μηνύματα: 0
    Τελευταίο Μήνυμα: 20-05-08, 15:52
  5. Μηνύματα: 8
    Τελευταίο Μήνυμα: 09-01-05, 03:57

Bookmarks

Bookmarks

Δικαιώματα - Επιλογές

  • Δεν μπορείτε να δημοσιεύσετε νέα θέματα
  • Δεν μπορείτε να δημοσιεύσετε νέα μηνύματα
  • Δεν μπορείτε να αναρτήσετε συνημμένα
  • Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας
  •  
  • Τα BB code είναι σε λειτουργία
  • Τα Smilies είναι σε λειτουργία
  • Το [IMG] είναι σε λειτουργία
  • Το [VIDEO] είναι σε λειτουργία
  • Το HTML είναι εκτός λειτουργίας