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

    [C] Formattazione input

    Forse non sono stato molto chiaro nel titolo, comunqe cercherò di essre più chiaro ora.

    Devo acquisire dei dati da file, in ogni riga i dati sono separati da virgola:

    njnbs.doc,Stefano Rossi,3480000000
    ho necessita di separare i vari componenti nella virgola.
    Con fscanf dovrei usare un comando simile a questo

    codice:
    fscanf(fp, "%[^,],%[^,]s,%d", file, nome, &tel)
    ma non funziona. Qualcuno mi sa aiutare?

  2. #2
    Utente di HTML.it L'avatar di newbie
    Registrato dal
    Dec 2005
    Messaggi
    299
    Non sono sicuro di come funzionino le espressioni regolari tipo nella fscanf ([^,] serve ad escludere la virgola?), ma in teoria quello che manca dovrebbe essere una "s". L'espressione, cioè, dovrebbe essere

    codice:
    fscanf(fp, "%[^,]s,%[^,]s,%d", file, nome, &tel)
                     ^

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    117
    non funziona in che senso? dà errore a tempo di compilazione? non viene fuori quello che volevi?

  4. #4
    ieri me le ha spiegate il mio prof.
    In pratica non va messa la "s".
    Se voglio prendere tutti i caratteri fino alla virgola scriverò %[^,] se voglio prendere tutta la riga compresi gli spazi, che invece non prende lo scanf, scrivo %[a-zA-Z ] in cui come notate dopo Z c'è volutamente uno spazio.


  5. #5
    Utente di HTML.it L'avatar di newbie
    Registrato dal
    Dec 2005
    Messaggi
    299
    Quindi %[^,] equivale a %s?

    Allucinante!

  6. #6
    Originariamente inviato da newbie
    Quindi %[^,] equivale a %s?

    Allucinante!
    pekke? è così intrigante

  7. #7
    Utente di HTML.it L'avatar di newbie
    Registrato dal
    Dec 2005
    Messaggi
    299
    Per me è una vera novità, io ero riasto al vecchio %s per leggere le stringhe... quindi si usare espressioni regolari del genere per la cara vecchia fscanf? E chi l'avrebbe mai immaginata una bastardata del genere?

    WOW!

  8. #8
    Originariamente inviato da newbie
    Per me è una vera novità, io ero riasto al vecchio %s per leggere le stringhe... quindi si usare espressioni regolari del genere per la cara vecchia fscanf? E chi l'avrebbe mai immaginata una bastardata del genere?

    WOW!
    Neanche io l'avrei immaginata...fino ad una settimana fa scleravo ancora con fgets, puntatori, buffer ecc...

    E poi chi dice che il C è superato? Molte cose si possono ancora fare, rimane ancora attuale. Diciamo che i liguaggi moderni permettono di fare le cose con più facilità



    PS: Nota per i moderatori, magari modificate il titolo in "Espressioni regolari con scanf e fscanf"

  9. #9
    Utente di HTML.it L'avatar di newbie
    Registrato dal
    Dec 2005
    Messaggi
    299
    E poi chi dice che il C è superato? Molte cose si possono ancora fare, rimane ancora attuale. Diciamo che i liguaggi moderni permettono di fare le cose con più facilità
    Certo, soprattutto per scrivere programmoni per Windows pieni di finestre e controlli... tra le gloriose API Win32 e VC++ .NET vince il secondo!
    PS: Nota per i moderatori, magari modificate il titolo in "Espressioni regolari con scanf e fscanf"
    Sono d'accordo, rende meglio l'idea...

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.