PDA

Visualizza la versione completa : File di testo e lettura primo carattere di ogni riga


spiderontheweb
08-05-2006, 19:54
Ciao a tutti. :)

Ho un file di testo.
Composto da un certo numero di righe di lunghezza fissa.

Come posso fare per prendere solo il primo carattere e passare alla riga successiva del file?

Ciao :ciauz:

pablo1986
08-05-2006, 20:15
apri il file
poi fai
fin.getline(buffer,1); //con fin si intende un ifstream
e poi per leggere una nuova riga ancora ancora fin.getline .....
su qualsiasi libro ci dovrebbe esesere un esempio del genere

spiderontheweb
08-05-2006, 21:35
Devo farlo in C.
Non conosco il C++. fin.getline forse è C++?

pablo1986
08-05-2006, 21:48
ha bhe allora cambierà solo l'istruzione getline, nn so quale si usi in c pero'.

ascatem2
08-05-2006, 22:28
in c la funzione è fgets

iquarda qui per il prototipo:
http://www.mkssoftware.com/docs/man3/fgets.3.asp


ciauz

spiderontheweb
08-05-2006, 22:53
Spiego il problema.

Ho un file di testo fatto più o meno così:
K 2 4
Q 1 6
R 3 9
...
...

ho fatto un ciclo for e con fscanf sono andato a prendere i dati così:


fscanf(fp, "%c %d %d", &p &x, &y);


Il problema è che una riga la prende bene e l'altra no e così fino alla fine, cioè legge qualcosa tra una riga e l'altra che nel file non compare.
Ho come l'impressione che fscanf non passi alla riga successiva.
Provo con fgets, ma vorrei capire come mai non va fscanf :bhò:

Ciao :ciauz:

Samuele_70
08-05-2006, 23:08
Prova così :


#include <iostream.h>

int main()
{
char ch;
FILE *in = fopen("Sample.txt", "rt" );
do
{
ch = getc(in);
printf("%c\n", ch);
while(ch!=10 && ch!=EOF) ch=getc(in);
}
while(ch!=EOF);
fclose(in);
return 0;
}

Loading