Oppure

Loading
12/01/15 14:04
pbe
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:

#include <stdio.h>
#include <string.h>

main()
{	
 	FILE *f;
	char c[255];
	char buffer[255];

	f = fopen("file.pb", "a+");
    	if (f==NULL) perror("Error opening file");
    	else
    	{
       		printf("Inserisci un valore: ");
	    	fgets (c,255,stdin);
		printf("\n... Scrivo il valore ...\n");
   		fputs (c,f);
   			
    		fseek(f, 0, SEEK_SET);
    
   		printf("\n...Leggo il valore ...\n\n");
   		fread(buffer, strlen(c), 254,f);
   		printf("%s\n", buffer);
   		fclose(f);
	}	
}


Datemi i vostri consigli :)
aaa
12/01/15 15:32
TheDarkJuster
Se fai il debug la stringa c'è tutta?
aaa
12/01/15 15:35
TheDarkJuster
E poi po consiglio la fprintf per scrivere
aaa
12/01/15 16:29
pbe
Postato originariamente da TheDarkJuster:
Se fai il debug la stringa c'e tutta?

Non capisco cosa vuoi dire...

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

Cosa cambia rispetto fputs?
aaa
12/01/15 16:38
AldoBaldo
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 12/01/15 16: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.
12/01/15 17:54
pbe
RISOLTO! Grazie a tutti per l'aiuto. Non tarderò molto a ri-riempirvi di domande.
Alla prossima. :k:
aaa
12/01/15 18:45
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...)
aaa
13/01/15 14:44
pbe
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.
aaa