PDA

View Full Version : conversione int-char


burp1
11-05-2003, 12:55
ho un piccolo problema con la lettura da file :cry:
il programma è questo

#include <stdio.h>
#include <ctype.h>
#include <iostream.h>
void main() {
FILE *file;
FILE *file1;
char filename[20];
int ch;
printf("Nome del file: "); scanf("%s", filename);
if ((file=fopen(filename, "r"))==NULL) { perror("Impossibile aprire file d'ingresso\n");
}
printf("Nome del file di uscita: "); scanf("%s", filename);
if ((file1=fopen(filename, "w"))==NULL) { perror("Impossibile aprire file di uscita\n");
}

for(;;) {

if((ch=fgetc(file))!=EOF){
if(ch == '#'){
//codice
}
else
fputc(ch, file1);

}
}
fclose(file);
}


ma ovviamente, essendo # un carattere e non un int non và niente...

qualcuno sà cosa devo mettere al posto di #????
grazie

cionci
11-05-2003, 15:04
Dovrebbe andare bene...

'#' è intero corrispondente al codice ASCII per il compilatore...

Poix81
12-05-2003, 06:54
altrimenti mettici il numero che ci corrisponde, altrimenti fai int('#') che fa un casting

burp1
12-05-2003, 19:50
non va.....
poco male, mi sono accorto che il c++ mi viene meglio per il progetto, ma ho problemi anche con questo....

il programma và perfettamente, copia il file, trova il carattere #, ma fà qualche casino da qualche parte :eek: in quanto il file risulta inapribile causa mancanza del file stesso :eek: (winzip parte, ma poi dice che non trova il file).
toglendo la condizione if và tutto bene, quindi suppongo che il problema sia lì, ma non lo trovo

#include <iostream.h>
#include <fstream.h>

void main(){

char ch;
int i = 0;
ifstream in("a.zip", ios::binary);
ofstream out("b.zip", ios::binary);

while(!in.eof()){
i = 0;
in.get(ch);
if(ch == '#'){
out.put(ch);
while(i < 4){
in.get(ch);
out.put(ch);
i++;
}
}
out.put(ch);


}
out.close();
in.close();
}



grazie

ultio
12-05-2003, 19:54
c'è una ripetizione di out.put()