C/C++の宿題を片付けます 104代目
レス数が900を超えています。1000を超えると表示できなくなるよ。
0917デフォルトの名無しさん
2008/04/06(日) 19:19:53#include <stdio.h>
#include <string.h>
int trans(char *fname_in, char *fname_out, int threshold){
FILE *fp_in=NULL, *fp_out=NULL;
int width, height, maximum, value, x, y, ret=0;
char buf[11];
if(!(fp_in=fopen(fname_in, "r"))) goto on_error;
if(!(fp_out=fopen(fname_out, "w"))) goto on_error;
fscanf(fp_in, "%10s", buf);
if(strcmp(buf, "P2")) goto on_error;
if(fscanf(fp_in, "%d %d %d", &width, &height, &maximum)!=3) goto on_error;
threshold=threshold*256/(maximum+1);
fprintf(fp_out, "P1\n");
for(y=0;y<height;y++){
for(x=0;x<width;x++){
if(fscanf(fp_in, "%d", &value)!=1) goto on_error;
fprintf(fp_out, " %d", value>=threshold?1:0);
}
fprintf(fp_out, "\n");
}
ret=1;
on_error:
if(fp_in) fclose(fp_in);
if(fp_out) fclose(fp_out);
return ret;
}
int main(int argc, char *argv[]){
if(argc==3) trans(argv[1], argv[2], 128);
return 0;
}
レス数が900を超えています。1000を超えると表示できなくなるよ。