08/09/21 12:34:37
>>777 (3)
#include<stdio.h>
#define DATA_NUM_MAX 100
int main(int argc, char *argv[]){
char *filename_in, *filename_pos_out="p.txt", *filename_neg_out="n.bin";
FILE *fp_in, *fp_pos_out, *fp_neg_out;
int i, data_num, array[DATA_NUM_MAX]={0};
if(argc!=2){
fprintf(stderr, "\nUsage: %s filename_in\n", argv[0]);
return 0;
}
filename_in=argv[1];
if((fp_in=fopen(filename_in, "r"))==NULL){
fprintf(stderr, "\nERROR: %s cannot open.\n", filename_in);
return 1;
}
for(data_num=0;data_num<DATA_NUM_MAX;data_num++) if(fscanf(fp_in, "%d", &array[data_num])!=1) break;
fclose(fp_in);
fp_pos_out=fopen(filename_pos_out, "w");
fp_neg_out=fopen(filename_neg_out, "wb");
if(fp_pos_out==NULL || fp_neg_out==NULL){
fprintf(stderr, "\nERROR: %s or %s cannot open.\n", filename_pos_out, filename_neg_out);
return 2;
}
for(i=0;i<data_num;i++){
if(array[i]>0) fprintf(fp_pos_out, "%d ", array[i]);
if(array[i]<0) fwrite(&array[i], sizeof(int), 1, fp_neg_out);
}
fclose(fp_pos_out);
fclose(fp_neg_out);
return 0;
}