PDA

Visualizza la versione completa : Uso del read(); in C [HELP]


ignoto
02-07-2002, 11:19
Potreste spiegarmi come si usa il read(); nel C?
io per imparare st˛ facendo alcuni programmi-esperimenti e oggi ho avuto la bella idea di provare a riprodurre il CAT del linux :)
ho fatto una cosa del tipo:

#include <stdio.h>

main()
{
FILE *stream, *fopen();
stream = fopen ("for.c","r");
printf("%s\n", fopen);

/* Controllo dell'esito: */
if ((stream = fopen ("for.c","r"))==NULL)
{
printf("Cant open %s \n", "for.c");
exit(1);
}
}

per aprire il file "for.c", per˛ come faccio a farmi stampare l'output? mi hanno detto di usare read(); e write();
se avete tempo mi aiutate please? :gren: bye.

ignoto
02-07-2002, 11:20
scusate il printf("%s\n", fopen); dopo lo stream non c'entra, era un'esperimento =)

floyd
02-07-2002, 11:21
per leggere il file usi fread o fscanf, per scrivere su console printf

ignoto
02-07-2002, 11:23
si questo lo so, ma come? nel programma che avevo fatto io, dopo aver aperto il file "for.c" come lo stampo il contenuto? :)

floyd
02-07-2002, 11:34
char c[100];
while (fread(c, 1, 100, stream) != 0) {
printf("%s", c);
}
prova non ne sono sicuro

ignoto
02-07-2002, 11:39
pu˛ darsi, cmq imparare il C da soli Ŕ + difficile di quanto pensassi =( mi sa che per ora read o fread li lascio stare, non ci capisco una mazza ;) tnx lo stesso bye

ignoto
02-07-2002, 11:58
usando il while con fread che mi avevi dato ci son riuscito tnx per˛ alla fine spunta una riga di caratteri strani, come mai?
ecco qui l'output:

[ignoto@ServerBox C]$ ./fopen
prova
prova
prova
 ┐└═[ignoto@ServerBox C]$


la parte: " ┐└═" perchŔ spunta? :)

floyd
02-07-2002, 12:10
scrivi tutto il programma

ignoto
02-07-2002, 13:26
#include <stdio.h>

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

FILE *stream, *fopen();
stream = fopen (argv[1],"r");

while (fread(a, 1, 100, stream) !=0) {
printf("%s",a);
}

/* Controllo dell'esito: */
if ((stream = fopen (argv[1],"r"))==NULL)
{
printf("Cant open %s \n", argv[1]);
exit(1);
}
}

DICONO CHE DEVO USARE MEMSET(); PER VIA DEL BUFFER

floyd
02-07-2002, 13:48
#include <stdio.h>

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

FILE *stream;
if ((stream = fopen ("prova", "r")) == NULL)
exit(1);

while (fread(a, 1, 100, stream) !=0) {
printf("%s",a);
}

fclose(stream);
}

questo funziona

Loading