PDA

Visualizza la versione completa : [C] Lettura e scrittura file di testo con valori numerici


akiraseno
26-09-2005, 19:50
Salve a tutti, io dovrei fare un programmino in c che legga come input un file.txt che ad esempio sia fatto così:

0123#56789
#123456789
01234#6789
0 * 2 3
0 1 2 *
0 1 @ 3
0 * 2 3
: 1 2 3
# 1 2 3

e produca come output un altro file txt con i numeri mancanti, ad esempio:
matricola risposte
4 0 5 1 3 2 1 0 0

Siccome nn sono un grande programmatore, se mi poteste dare una mano mi salvereste.Grazie in anticipo dello sbattimento

alka
26-09-2005, 20:18
Ciao, ho provveduto a modificare il titolo in quanto non molto significativo e non aderente alle convenzioni prestabilite dal nostro Regolamento (http://forum.html.it/forum/showthread.php?s=&threadid=862017) che, dato che sei nuovo, ti suggerisco di leggere per conoscere tutte le norme di buona convivenza all'interno di quest'area. :)

Ciao e...buon forum! :ciauz:

DydBoy
27-09-2005, 01:30
#include <stdio.h>
#include <string.h>

main()
{
FILE *file = fopen ("text.txt","r");
FILE *fileOut = fopen ("result.txt","w");

char buffer[100];
int i=0;
char *string;

while (fgets(buffer,100,file) != NULL)
{
string = strtok(buffer,"\n\t\r");

while (string[i] == (i+48))
i++;

fprintf(fileOut,"%d\n",i);

i = 0;
}

}




:ciauz:

akiraseno
27-09-2005, 13:08
Grazie mille dell'aiuto, ho provato il programma ma mi da come output
4 0 5 1 1 1 0 1 1

io credo che sia perchè dopo la terza riga del file di input i caratteri sono separati da spazi(es 0 1 @ 3),posso chiederti di darmi una mano ancora?

DydBoy
27-09-2005, 18:07
Si,infatti avevo considerato che non ci fossero spazi.

Questo considera anche gli spazi :



#include <stdio.h>
#include <string.h>
main()
{
FILE *file = fopen ("text.txt","r");
FILE *fileOut = fopen ("result.txt","w");

char buffer[100];
int i=0;
char *string;
int spaces = 0;

while (fgets(buffer,100,file) != NULL)
{
string = strtok(buffer,"\n\t\r");

while (string[i] == (i-spaces+48) || string[i] == ' ')
{
if (string[i] == ' ')
spaces++;
i++;
}

fprintf(fileOut,"%d\n",i-spaces);

i = 0;
spaces=0;
}


}

akiraseno
28-09-2005, 17:50
purtroppo nn funziona mi da errore e l'applicazione si chiude, ho provato a correggerlo ma nn c sono riuscito perchè nn vedo dove possa essere l'errore

DydBoy
28-09-2005, 17:57
Strano, a me gira perfettamente,se mi posti l'errore magari ci si arriva.

akiraseno
29-09-2005, 12:27
nn so perche' ma se faccio

fclose(file);
fclose(fileOut);

alla fine del while il programma funziona.
Misteri...
cmq grazie mille dell'aiuto :unz:

DydBoy
29-09-2005, 13:42
Bè si , li ho dimenticati :)

L'importante è che ora hai risolto :ciauz:

Loading