View Full Version : [C-C++]
Arthemis
13-11-2004, 20:38
Ciao a tutti volevo sapere se esisteva 1 guida (no i reference) per interagire con i files in C o C++ decidete voi.
Qualcosa che faccia degli esempi concreti.Magari anke in pdf
ciao ciao!:sofico:
VegetaSSJ5
13-11-2004, 23:35
cosa intendi per interagire con files c/c++?
ti serve per caso una guida per iniziare a programmare in c/c++?
Arthemis
14-11-2004, 08:16
A si scusa tantissimo! mi sono dimenticato di spiegarmi.(perchè questo post l'ho fatto su altri 2 forum e me so scordato).
Intendo copiare,eliminare e creare files.
La piattaforma è Win(98Se) ma non penso che influisca piu di tanto.Se in generale conoscete 1 bella guida in pdf in C completa delle basi e oltre (cose piu avanzate) datemi anche quella ;)
Grazie tanto in anticipo!
CIAO CIAO!
Originariamente inviato da Arthemis
Intendo copiare,eliminare e creare files.
Quello lo puoi fare tranquillamente con Notepad visto che sono semplici file di testo :p
Però per vedere qualcosa in azione ti serve un compilatore, e se non sei un maledetto genio del male credo non ti dispiaccia avere un programma che evidenzi la sintassi del linguaggio, compili, faccia il debug a runtime... un IDE insomma :D
Arthemis
14-11-2004, 09:15
Qualcosa mi dice che non hai capito nulla :P
io devo solo usare funzioni che creano, cancellano e copiano files
basta...nn so cosa centri con quello ke hai detto tu :)
:p ;)
Arthemis
14-11-2004, 09:38
Hai capito ora cosa intendo? cmq io ti ho aggiunto a icq se lo apri 1 attimo parliamo! ;)
Arthemis
14-11-2004, 10:46
Questo è 1 pezzo di codice mi dite che c'è di sbagliato visto che se eseguo mi da 1 errore di windows che mi dice Errore in kernel32.
void leggi_file()
{
FILE *file;
char Path[300];
char buf[512];
char d;
int s[512];
int t;
printf("[Read_File] ");
printf("Specifica l'indirizzo\n");
scanf("%s",Path);
file=fopen(Path,"R");
t=fread(buf,1,512,file);
for(int i=0;i<512;i++)
{
printf("%c",buf[i]);
}
fclose(file);
scanf("%c",&d);
}
VegetaSSJ5
14-11-2004, 10:50
il consiglio di banus era corretto: devi scaricarti un ide, scarica dev-c++ dal qui
http://prdownloads.sourceforge.net/dev-cpp/devcpp4990setup.exe?download
poi ti serve una guida per il C che arrivi almeno a trattare i file. ce ne sono migliaia online, una è questa. se non ti piace fai una ricerca su google:
http://programmazione.html.it/c/
Arthemis
14-11-2004, 10:52
Si ma vi ho postato il codice vedete qualcosa che non va?:cry: :muro:
Originariamente inviato da Arthemis
Si ma vi ho postato il codice vedete qualcosa che non va?:cry: :muro:
Probabilmente questo:
file=fopen(Path,"r");
Originariamente inviato da cionci
Probabilmente questo:
file=fopen(Path,"r");
Ho provato a compilare e quello lo prende, ho controllato anche se il puntatore è nullo.
Invece mi dà una violazione di accesso su:
t=fread(buf,1,512,file);
Anche provando a ridurre il buffer continua a darmela.
void leggi_file()
{
FILE *file;
char Path[300];
char buf[512];
char d;
int s[512];
int t;
printf("[Read_File] ");
printf("Specifica l'indirizzo\n");
scanf("%s",Path);
file=fopen(Path,"r");
t=fread(buf,1,512,file);
if(file){
for(int i=0;i<512;i++)
printf("%c",buf[i]);
fclose(file);
}
scanf("%c",&d);
}
file=fopen(Path,"r"); non file=fopen(Path,"R");
Perche non segui il mio consiglio di leggerti la reference su
http://www.cplusplus.com/ref/
ci sono esempi cocreti per tutte le funzioni che lavorano sui file, esempi su come ottenere la dimensione di un file, su come leggerlo tutto, ecc ecc...
Ecco un esempio su come leggere un file completo:
/* fread example: read a complete file */
#include <stdio.h>
#include <stdlib.h>
int main () {
FILE * pFile;
long lSize;
char * buffer;
pFile = fopen ( "myfile.txt" , "rb" );
if (pFile==NULL) exit (1);
// obtain file size.
fseek (pFile , 0 , SEEK_END);
lSize = ftell (pFile);
rewind (pFile);
// allocate memory to contain the whole file.
buffer = (char*) malloc (lSize);
if (buffer == NULL) exit (2);
// copy the file into the buffer.
fread (buffer,1,lSize,pFile);
/*** the whole file is loaded in the buffer. ***/
// terminate
fclose (pFile);
free (buffer);
return 0;
}
Questo approccio per copiare va bene per piccoli file, se no è meglio utlizzare la fread in un ciclo, leggere dal file di origine e scrivere nel file di destinazione, fino a copiare tutto, magari utilizzando un buffer piu grosso.
Se metto la r minuscola mi funziona perfettamente...
E' nromale che nond ia un errore in fase di compilazione... Quello è un errore che può essere rilevato solo a runtime (probabilmente file sarà NULL)...
Originariamente inviato da cionci
Se metto la r minuscola mi funziona perfettamente...
Idem, controllato bene adesso :p
Arthemis
14-11-2004, 13:32
Grazie a tutti ma avevo gia risolto da solo ;)
a forza di provare come dice il mio "CARISSIMO AMICO"(ke mi ammazzerebbe) anx721.
Ora il mio problema è 1 altro: riuscire a svuotare delle array:
Ho riempito char stringa[10] e char comando[10] come faccio a svuotarle? è possibile? non posso fare altrimenti mi serve per memorizzarci altre stringhe dentro!
Grazie di tutto!:)
Bhe, basta memorizzarci i nuovi valori con la scanf o strcpy; se vuoi proprio azerarle basta mettere il caratere '\0' nella prima posizione
Arthemis
14-11-2004, 13:56
string[0]='\0';
cosi?
se non è cosi perfavore fammi 1 esempio
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.