Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [C] Problema con la fgets.. AIUTO!

    Ho incollato il mio codice qui sotto: sapete aiutarmi e dirmi perchè non mi visualiza le trre righe che ho sul mio file correttamente?
    Grazie,

    Ely

    char vett[NP];
    char *s;
    char *p[N];
    FILE *stream;
    int i=0;
    int k;
    if((stream = fopen("Nuovo.txt", "r")) == NULL)
    {
    fprintf(stderr, "Errore apertura file\n");
    exit(1);
    }

    while(fgets(vett, NP, stream) != NULL)
    {
    p[i] = s;
    // printf("%s\n", p[i]);
    i++;

    }
    for(k=0; k < i ;k++)
    printf("%s\n", p[k]);

    getchar();
    return 0;

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Scusa ely, ma le righe le leggi in

    vett

    ma poi non usi vett da nessuna parte ...

    E a cosa serve

    s

    ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    printf("%s\n", p[k]);

    Attenzione p è un vettore di puntatori non un array di stringhe.
    01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
    All errors are undocumented features waiting to be discovered.

  4. #4
    Originariamente inviato da oregon
    Scusa ely, ma le righe le leggi in

    vett

    ma poi non usi vett da nessuna parte ...

    E a cosa serve

    s

    ?
    scusami, il codice originale era vett al posto di s...ho copiato quello vecchio...

    char vett[NP];

    char *p[N];
    FILE *stream;
    int i=0;
    int k;
    if((stream = fopen("Nuovo.txt", "r")) == NULL)
    {
    fprintf(stderr, "Errore apertura file\n");
    exit(1);
    }

    while(fgets(vett, NP, stream) != NULL)
    {
    p[i] = vett;
    // printf("%s\n", p[i]);
    i++;

    }
    for(k=0; k < i ;k++)
    printf("%s\n", p[k]);

    getchar();
    return 0;

    allora?

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Allora il problema, come dice Samuele, e' che

    p

    e' un array di puntatori e non un array di stringhe.

    Quindi non deve essere

    char *p[N];

    ma

    char p[N][NP];

    e devi copiare la stringa che leggi non con

    p[i] = vett;

    ma con

    strcpy(p[i], vett);
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.