PDA

Visualizza la versione completa : [C] sintassi fscanf


Matteo982
29-06-2005, 21:17
Una domanda banale...qual è la sintassi giusta nelle parentesi per usare fscanf(...) e fprintf(...)

Ciao. :ciauz:

eumene
29-06-2005, 22:52
fscanf(FILE *f, const char *type, void *param1, ...);
fprintf(FILE *f, const char *type, void const param1, ...);


Nello specifico:

fscanf si aspetta un puntatore al file da cui leggere, la stringa dei tipi di lettura e le aree di memoria in cui scrivere, coerentemente con i tipi richiesti:
Esempio



FILE *f;
char *s;
int i;

.
.
.

// Supponendo che la fopen() in lettura e la feof()
// vadano a buon fine
// leggo da file una stringa, che pongo in s, ed un intero, che
// scrivo in i, separati da spazio
fscanf(f, "%s %d", s, &i);


La fprintf scrive in f, puntatore al file, il contenuto dei parametri, nel rispetto della stringa di tipi
Esempio:


FILE *f;
char *s;
int i;

.
.
.

// Supponendo che la fopen() in scrittura
// scrivo in file la stringa s e l'intero i
// separati da spazio
fprintf(f, "%s %d", s, i);


Sono identiche e precise alle cugine scanf() e printf()

Matteo982
29-06-2005, 23:04
quindi se io dovessi prendere da un file e scrivere in un altro dovrei fare:


FILE *f;
FILE *p;
int s;
...
fscanf(f,"%d",&s);
fprintf(p,"%d",s);
...

basta mettere un %d se ad esempio devo leggere da un file di testo il numero 11 (o comunque un numero a 2 cifre)? :master:

eumene
30-06-2005, 09:20
basta mettere un %d se ad esempio devo leggere da un file di testo il numero 11 (o comunque un numero a 2 cifre)?


Esattamente. Con %d leggi un intero fino ad un carattere delimitatore come lo spazio.

Se nel file ci fosse scritto 'c' e tu leggi con %d, quindi come intero, esegue la conversione ASCII del carattere c.

Matteo982
30-06-2005, 09:36
Ho capito...allora ho spiegato giusto alla mia amica...fa economia ma ha un esame di informatica. Io faccio informatica all'università però ho fatto poco poco di C dato che di solito si usa il java...quindi prima dirgli qualche stupidata meglio chiedere conferme! :zizi:

eumene
30-06-2005, 10:11
ehm.... Anch'io faccio l'università, informatica, ma studiamo molti linguaggi di programmazione:


Pascal per scopi didattici e di impostazione
C per la programmazione dei sistemi UNIX e per applicazioni scentifiche
C++ per approccio rigido alla programmazione ad oggetti
Java per sviluppo applicazioni complesse
Php per applicazioni web
Matlab per applicazioni matematiche e simulazione funzioni booleane
Perl, lex, byson per la gestione di testi, espressioni regolari e creazione compilatori
Prolog e Lisp per programmazione dichiarativa


ma la lista continua...

Matteo982
30-06-2005, 10:16
Secondo me non serve a molto fare tante cose. meglio impararne una fatta bene e al massimo uno sguardo alle altre...altrimenti c'è il rischio di finire a sapere niente di tutto

Matteo982
01-07-2005, 20:53
Qualcuno mi può dire se anche in C esiste una funzione che restituisce il resto di una divisione??

Se io creo una funzione che mi deve ritornare un vettore di che tipo deve essere la funzione?

Ephestus
02-07-2005, 10:40
Originariamente inviato da Matteo982
Qualcuno mi può dire se anche in C esiste una funzione che restituisce il resto di una divisione??E' il semplice operatore % (modulo) resto=op%op2;
:ciauz:

Matteo982
02-07-2005, 10:44
grazie...e per la cosa delle funzione?

ps: per i moderatori...avevo inviato una segnalazione perchè non riuscivo a cancellare il messaggio però visto che nell'altra discussione in cui lo avevo scritto ho modificato non c'è più bisogno di cancellare questo...scusate per il disturbo :fighet:

Loading