Visualizzazione dei risultati da 1 a 7 su 7

Discussione: [C] Sqlite e scanf

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    323

    [C] Sqlite e scanf

    Salve, no so qual'è il problema che quando digito una descrizione lunga e la vado inserire nel database mi viene tagliata..

    ora il pezzo di codice è questo:
    codice:
       printf("Inserisci la descrizione      : ");                
    scanf("%s", descrizione);                
    fflush(stdin);
    e il suo char è di 256.

    l'inserimento nel database è questo:
    codice:
        if (sqlite3_bind_text(stmt,2,descrizione,255,SQLITE_STATIC)!= SQLITE_OK) 
    {              
    return 1;  
     }
    Ora non ricevo nessun errore ma se scrivo:

    "Creazione del programma da parte utente"

    E mi viene tagliato a "Creazione"

    come mai?

    grazie mille e buona giornata.

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    E' corretto che si fermi a "Creazione" visto che è così che funziona scanf: al primo spazio si ferma.
    Usa fgets()
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    323
    Quote Originariamente inviata da Alex'87 Visualizza il messaggio
    E' corretto che si fermi a "Creazione" visto che è così che funziona scanf: al primo spazio si ferma.
    Usa fgets()
    ok, per caso si usa fgets(descrizione,255,stdin);?
    grazie mille.

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    323
    ok, fatto ma mi crea un accapo come risolvo?

    grazie mille.

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    323
    risolto con questo: gets(descrizione);
    giusto?
    perché cosi funziona e non va accapo e mi prende tutto il testo..
    grazie mille.

  6. #6
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    Quote Originariamente inviata da LedGiallo Visualizza il messaggio
    risolto con questo: gets(descrizione);
    giusto?
    perché cosi funziona e non va accapo e mi prende tutto il testo..
    grazie mille.
    Giusto è giusto, ma non è sicuro, infatti se in input ci sono più caratteri della grandezza dell'array rischi un segfault o qualcosa del genere...
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    323
    Per caso fa questo effetto ??

    Cattura.JPG

    Che mi spopola il testo della descrizione anche nelle altri campi della tabella?

    O è un mio errore di codifica oppure che ha trovato un carattere strano e ma lo a spopolato nei vari campi?

    l'ho preso da lorem ipsum generator.

    idee?.

    grazie mille

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 © 2024 vBulletin Solutions, Inc. All rights reserved.