Dsy Network www | forum | my | didattica | howto | wiki | el goog | stats | blog | dona | rappresentanti
Homepage
 Register   Calendar   Members  Faq   Search  Logout 
.dsy:it. : Powered by vBulletin version 2.3.1 .dsy:it. > Didattica > Corsi A - F > Algoritmi e strutture dati > esercizio file
  Last Thread   Next Thread
Author
Thread    Expand all | Contract all    Post New Thread    Post A Reply
Collapse
fra85
.primate.

User info:
Registered: Mar 2011
Posts: 77 (0.02 al dì)
Location:
Corso: informatica
Anno: terzo anno
Time Online: 10:51:29 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged
esercizio file

Salve ragazzi,non riesco a capire una cosa riguardante la lettura di file. Ecco il codice:


#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{

FILE *fp;
int valore, dim=100;
char stringa[dim], *s;

fp= fopen("stringa_mista.txt", "r");
fscanf(fp,"%d",&valore);
s= fgets(stringa, dim, fp);

fclose(fp);
printf("valore vale:%d-----\n", valore);
printf("stringa vale:%s------\n", s);

system("PAUSE");
return 0;
}

stringa_mista.txt:
1 ciao ciao2 ciao3
ciao4

Il programma come output stamperà:
valore vale:1-------
stringa vale:ciao1 ciao2 ciao3
----------

come faccio a farmi stampare:
stringa vale:ciao1 ciao2 ciao3------- (cioè senza questo lungo spazio bianco)??????

grazie....

17-01-2012 16:39
Click Here to See the Profile for fra85 Click here to Send fra85 a Private Message Find more posts by fra85 Add fra85 to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
panzone
.primate.

User info:
Registered: Sep 2010
Posts: 63 (0.01 al dì)
Location: Vigevano
Corso: Informatica
Anno: 2
Time Online: 16:10:18 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Semplicemente rimuovi il \n nel primo printf e gli eventuali ----.

Il char \n indica appunto l' andare a capo.

17-01-2012 17:50
Click Here to See the Profile for panzone Click here to Send panzone a Private Message Find more posts by panzone Add panzone to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
fra85
.primate.

User info:
Registered: Mar 2011
Posts: 77 (0.02 al dì)
Location:
Corso: informatica
Anno: terzo anno
Time Online: 10:51:29 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Mi sa che mi sono espressa male :-D ...
Ho messo i trattini proprio per vedere cosa stampava. Ho notato che la funzione fscanf mi inserisce in valore soltanto l'intero e si ferma quando trova lo spazio vuoto.
Per la lettura di una riga da file,in particolare il seguito fino a quando non finisce la riga,ho usato fgets che però non si ferma all'ultimo spazio vuoto ma si ferma alla fine della riga...
Quindi mette in stringa ciao1ciao2ciao3spaziospaziospaziospazio
fino alla fine della riga.
Io in realtà voglio che in stringa ci sia soltanto ciao1ciao2ciao3, come posso fare????

grazie

17-01-2012 19:11
Click Here to See the Profile for fra85 Click here to Send fra85 a Private Message Find more posts by fra85 Add fra85 to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
xSharKMaNx
un gioco della follia

User info:
Registered: Sep 2007
Posts: 1477 (0.23 al dì)
Location:
Corso: F49
Anno: Laureato
Time Online: 10 Days, 17:15:29 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

la fgets riceve 3 parametri
il secondo parametro è la dimensione da allocare in memoria, nel tuo caso 100

questo significa che quando usi la fgets il programma alloca in memoria la tua stringa + nspaazi fino alla max dimensione.

Le soluzioni sono due o usi:
fscanf(nomefile,%s %d %f %d,x,y,z,w)

oppure se utilizzi la fgets dovrai crearti una funzione che cicla sulla stringa carattere per carattere e qualora il char è isspace non lo devi considerare

oppure ci saranno altri metodo migliori dei miei in quanto con C non vado d'accordo :)

__________________
Perché, mentre il manganello può sostituire il dialogo, le parole non perderanno mai il loro potere; perché esse sono il mezzo per giungere al significato, e per coloro che vorranno ascoltare, all'affermazione della verità. E la verità è che c'è qualcosa di terribilmente marcio in questo paese. (V)

I popoli non dovrebbero aver paura dei propri governi, sono i governi che dovrebbero aver paura dei popoli. (T.J)

18-01-2012 08:39
Click Here to See the Profile for xSharKMaNx Click here to Send xSharKMaNx a Private Message Find more posts by xSharKMaNx Add xSharKMaNx to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
fra85
.primate.

User info:
Registered: Mar 2011
Posts: 77 (0.02 al dì)
Location:
Corso: informatica
Anno: terzo anno
Time Online: 10:51:29 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

ok grazie....

18-01-2012 17:55
Click Here to See the Profile for fra85 Click here to Send fra85 a Private Message Find more posts by fra85 Add fra85 to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
All times are GMT. The time now is 14:35.    Post New Thread    Post A Reply
  Last Thread   Next Thread
Show Printable Version | Email this Page | Subscribe to this Thread | Add to Bookmarks

Forum Jump:
Rate This Thread:

Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is OFF
vB code is ON
Smilies are ON
[IMG] code is ON
 

Powered by: vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento | Licenze | Thanks | Syndacate
Pagina generata in 0.034 seconds (79.11% PHP - 20.89% MySQL) con 26 query.