PDA

View Full Version : [c++]Lettura da file


leomagic
21-04-2004, 16:24
come posso riuscire a capire se il dato che leggo da file è un char o un int?

cionci
21-04-2004, 17:57
Come lo leggi ?

jolanda_81
21-04-2004, 18:07
Originariamente inviato da leomagic
come posso riuscire a capire se il dato che leggo da file è un char o un int?

devi saperlo tu.

leomagic
21-04-2004, 20:10
apro il file con fstream e metto il primo valore nel file aperto..
come faccio ad identificarlo?

cionci
21-04-2004, 21:14
Che intendi per identificarlo...sinceramente non ho capito...

leomagic
21-04-2004, 21:19
io leggo un insieme di dati da file,li metto in un vettore.
Se sono char faccio una cosa,se sono int un'altra.
come faccio a capire se sono char o int?

cionci
21-04-2004, 21:21
Ma chi ce li ha messi questi dati nel file ?
Quando si legge un file binario bisogna conoscere a priori il formato del fle...

leomagic
21-04-2004, 21:24
il file viene preso in input!!!!!
possibile che sia così difficile da capire??
apro il file,leggo il primo dato e devo controllare se è char o int!!

cionci
21-04-2004, 21:31
Il file è memorizzato sequnzialmente...non puoi determinare se è un char o un int...

Ma è un file di testo o è un file binario ?

jolanda_81
22-04-2004, 11:11
Originariamente inviato da leomagic
il file viene preso in input!!!!!
possibile che sia così difficile da capire??
apro il file,leggo il primo dato e devo controllare se è char o int!!

Scusa ma la tua domanda non ha senso..senza offesa..

Se tu memorizzi una cosa sul disco questa è una sequenza di 1 e di 0 senza senso, sei poi tu come programmatore che andando a leggere puoi dare un senso a quel ceh leggi..quindi se vuoi leggere un char (8 bit) leggi una seguenza di 8 simboli, se vuoi un intero (int su 16/32 non ricordo :))) ) leggi una sequenza più lunga.. Ma non c'è scritto da nessuna parte cosa siano, a meno che chi li ha scritti non sia stato tanto buono da informarti in qualche modo...

Spero di averti fatto capire perché hai spiazzato tutti con questa domanda :)

ciao ciao

pipozzolo
23-04-2004, 10:49
Originariamente inviato da leomagic
come posso riuscire a capire se il dato che leggo da file è un char o un int?

Messa così non si può fare...
a meno che il file sia composto solo da char che tu vuoi interpretare come int o come char a seconda del valore trovato...
ma non credo che ti riferissi a questo.
Ciao

eclipse85
23-04-2004, 20:05
beh, se hai già una variabile (poi sono fatti tuoi come te la crei o leggi o altro) puoi usare sizeof()

/\/\@®¢Ø
24-04-2004, 00:36
Originariamente inviato da leomagic
come posso riuscire a capire se il dato che leggo da file è un char o un int?
I dati sono memorizzati in formato binario o testuale ?
Se sono in formato binario non c'e' modo di distinguerli se non preponendo un carattere identificativo.
Se sono in formato testuale puoi usare qualcosa come il seguente

#include <cctype>
#include <iostream>
using namespace std;
void foo( istream& in )
{
if ( isdigit(in.peek() ) )
{
int n;
in >> n;
cout << "Numero: " << n << endl;
}
else
{
char c;
in >> c;
cout << "Carattere: " << c << endl;
}

Attento pero' che devi essere sicuro di essere proprio all'inizio di uno dei due
(potresti ad esempio saltare eventuali gli spazi con while ( isspace(in.peek()) ) in.ignore(); prima dell'if.