Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Fwrite / fread con gli spazi
Forum - C/C++ - Fwrite / fread con gli spazi

Avatar
pbe (Normal User)
Pro


Messaggi: 131
Iscritto: 24/05/2014

Segnala al moderatore
Postato alle 15:04
Lunedì, 12/01/2015
Il mio problema è il seguente:
Ho creato un programmino in C il quale, con l'uso dei puntatori, chiede un qualsiasi valore all'utente e aggiunge il testo digitato al file "file.pb" e da anche l'output completo di tutto il contenuto del file.

Fino a qua tutto bene, tutto funzionante, solo che se inserisco qualsiasi valore diviso da uno spazio il programma salva solamente la prima parte del valore.
Per esempio se digito "c iao" mi salva solo "c". Se digito "1 234" mi salva solo "1".

A questo punto dovrebbe essere abbastanza chiaro il problema.
Ecco il codice completo:

Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. main()
  5. {      
  6.         FILE *f;
  7.         char c[255];
  8.         char buffer[255];
  9.  
  10.         f = fopen("file.pb", "a+");
  11.         if (f==NULL) perror("Error opening file");
  12.         else
  13.         {
  14.                 printf("Inserisci un valore: ");
  15.                 fgets (c,255,stdin);
  16.                 printf("\n... Scrivo il valore ...\n");
  17.                 fputs (c,f);
  18.                        
  19.                 fseek(f, 0, SEEK_SET);
  20.    
  21.                 printf("\n...Leggo il valore ...\n\n");
  22.                 fread(buffer, strlen(c), 254,f);
  23.                 printf("%s\n", buffer);
  24.                 fclose(f);
  25.         }      
  26. }



Datemi i vostri consigli :)

PM Quote
Avatar
TheDarkJuster (Member)
Guru^2


Messaggi: 1620
Iscritto: 27/09/2013

Segnala al moderatore
Postato alle 16:32
Lunedì, 12/01/2015
Se fai il debug la stringa c'è tutta?

PM Quote
Avatar
TheDarkJuster (Member)
Guru^2


Messaggi: 1620
Iscritto: 27/09/2013

Segnala al moderatore
Postato alle 16:35
Lunedì, 12/01/2015
E poi po consiglio la fprintf per scrivere

PM Quote
Avatar
pbe (Normal User)
Pro


Messaggi: 131
Iscritto: 24/05/2014

Segnala al moderatore
Postato alle 17:29
Lunedì, 12/01/2015
Testo quotato

Postato originariamente da TheDarkJuster:
Se fai il debug la stringa c'e tutta?


Non capisco cosa vuoi dire...

Testo quotato

Postato originariamente da TheDarkJuster:
E poi po consiglio la fprintf per scrivere


Cosa cambia rispetto fputs?

PM Quote
Avatar
AldoBaldo (Member)
Guru


Messaggi: 700
Iscritto: 08/01/2015

Segnala al moderatore
Postato alle 17:38
Lunedì, 12/01/2015
Ho provato a compilare ed eseguire con il debugger il tuo codice e mi sembra che funzioni come dovrebbe.

Non so se ti interessa, ma io l'avrei scritto così:

Edit: ho tolto il codice prima che il moderatore mi strigli a dovere (quando ho postato non avevo ancora visto che TheDarkJuster aveva già dato i suoi suggerimenti). Aggiungo: la stringa c'è tutta solo se inizialmente il file è vuoto.

Ultima modifica effettuata da AldoBaldo il 12/01/2015 alle 17:43


ATTENZIONE! Sono un hobbista e l'affidabilità delle mie conoscenze informatiche è molto limitata. Non prendere come esempio il codice che scrivo, perché non ho alcuna formazione accademica e rischieresti di apprendere pratiche controproducenti.
PM Quote
Avatar
pbe (Normal User)
Pro


Messaggi: 131
Iscritto: 24/05/2014

Segnala al moderatore
Postato alle 18:54
Lunedì, 12/01/2015
RISOLTO! Grazie a tutti per l'aiuto. Non tarderò molto a ri-riempirvi di domande.
Alla prossima. :k:

PM Quote
Avatar
TheDarkJuster (Member)
Guru^2


Messaggi: 1620
Iscritto: 27/09/2013

Segnala al moderatore
Postato alle 19:45
Lunedì, 12/01/2015
Si ma se non fai il debug è ovvio che sei qui a fare tante domande. Non che ci dispiaccia, ma perdi tempo ed è frustrante (almeno, per me lo è dover spiegare cosa fa il sorgente, i suoi problemi ecc...)

PM Quote
Avatar
pbe (Normal User)
Pro


Messaggi: 131
Iscritto: 24/05/2014

Segnala al moderatore
Postato alle 15:44
Martedì, 13/01/2015
Testo quotato

Postato originariamente da TheDarkJuster:

Si ma se non fai il debug è ovvio che sei qui a fare tante domande. Non che ci dispiaccia, ma perdi tempo ed è frustrante (almeno, per me lo è dover spiegare cosa fa il sorgente, i suoi problemi ecc...)



Scusami, è stato errore mio. Avevo fatto un ultima modifica alla fine e non mi ero accorto che funzionava...
Starò più attento.

PM Quote