[C] problema lettura stringa da file
  • In diretta da GamesVillage.it
    • News
    • -
    • In Evidenza
    • -
    • Recensioni
    • -
    • RetroGaming
    • -
    • Anteprime
    • -
    • Video
    • -
    • Cinema

Visualizzazione risultati da 1 a 5 di 5

Discussione: [C] problema lettura stringa da file

Cambio titolo
  1. #1
    Utente
    Registrato il
    12-10
    Località
    messina
    Messaggi
    16

    [C] problema lettura stringa da file

    ciao a tutti,
    sto studiando il c è ho un problema.
    sto creando una rubrica con liste e file , perchè questo prevede il programma del mio corso di laurea, ma quando nella funzione "caricalista" fscanfo il file, la stringa iniziale mi viene riempita fino a 30(dim della stringa), e non fino al carattere terminatore ";" . ovviamente ho messo 30 come dimensione della stringa perchè ogni nome , e cognome, nel database ha un numero di caratteri diversi

    il database è formattato ogni riga con
    stringa nome;stringa cognome;int giorno nascita;stringa mese;int anno nascita;int numero telefono

    vi lascio il link al codice http://codepad.org/7mQ3nvcb

    spero sappiate aiutarmi

  2. #2
    da 3? L'avatar di Celebron
    Registrato il
    07-06
    Località
    Sotto Canestro
    Messaggi
    14.462
    Non ho ben capito, qual è il problema della fgets nel tuo caso? Fa quello che deve
    char * fgets ( char * str, int num, FILE * stream );
    Get string from stream
    Reads characters from stream and stores them as a C string into str until (num-1) characters have been read or either a newline or the End-of-File is reached, whichever comes first.
    A newline character makes fgets stop reading, but it is considered a valid character and therefore it is included in the string copied tostr.
    A null character is automatically appended in str after the characters read to signal the end of the C string.

  3. #3
    Utente
    Registrato il
    12-10
    Località
    messina
    Messaggi
    16
    Citazione Celebron Visualizza Messaggio
    Non ho ben capito, qual è il problema della fgets nel tuo caso? Fa quello che deve
    [/I][/I]
    INfatti sto usando fscanf e non fgets xD dove hai letto fgets?

  4. #4
    Utente
    Registrato il
    02-06
    Località
    ...
    Messaggi
    4.972
    http://pubs.opengroup.org/onlinepubs...ons/scanf.html
    E' il comportamento della sscanf.
    Legge l'input se trova un match, e lo inserisce nella zona di memoria indicata.
    Ma inserisce nella zona di memoria indicata la più lunga sottostringa dell'input che matcha il pattern, non spezza la stringa come tu vorresti.

  5. #5
    Utente L'avatar di devilheart
    Registrato il
    01-03
    Messaggi
    28.310
    Per quel tipo di matching ti conviene usare funzioni come strtok() o le espressioni regolari

Regole di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •