C语言怎样利用数组处理数据?
发布网友
发布时间:2022-04-29 02:31
我来回答
共1个回答
热心网友
时间:2023-10-05 13:18
#include
#include
long ToLong(char *s) {
long i = 0,num = 0;
while(s[i]) {
if(s[i] >= 'a' && s[i] <= 'f')
num = 16 * num + s[i] - 'a' + 10;
else if(s[i] >= 'A' && s[i] <= 'F')
num = 16 * num + s[i] - 'A' + 10;
else if(s[i] >= '0' && s[i] <= '9')
num = 16 * num + s[i] - '0';
++i;
}
return num;
}
int main() {
char s[81];
enum {MAXLEN = 500};
long num[MAXLEN],i,cnt = 0,n = 0;
FILE *infp = fopen("source.txt","rt");
FILE *outfp = fopen("result.txt","wt");
if(infp == NULL || outfp == NULL) {
printf("打开文件失败!\n");
return 1;
}
while(!feof(infp)) {
fgets(s,81,infp);
num[n++] = ToLong(s);
}
fclose(infp);
for(i = 0; i < n; ++i) {
if(cnt && cnt % 20 == 0) {
fprintf(outfp,"\n");
printf("\n");
}
fprintf(outfp,"%ld ",num[i]);
printf("%ld ",num[i]);
}
fclose(outfp);
return 0;
}追问输出结果不对啊?
热心网友
时间:2023-10-05 13:18
#include
#include
long ToLong(char *s) {
long i = 0,num = 0;
while(s[i]) {
if(s[i] >= 'a' && s[i] <= 'f')
num = 16 * num + s[i] - 'a' + 10;
else if(s[i] >= 'A' && s[i] <= 'F')
num = 16 * num + s[i] - 'A' + 10;
else if(s[i] >= '0' && s[i] <= '9')
num = 16 * num + s[i] - '0';
++i;
}
return num;
}
int main() {
char s[81];
enum {MAXLEN = 500};
long num[MAXLEN],i,cnt = 0,n = 0;
FILE *infp = fopen("source.txt","rt");
FILE *outfp = fopen("result.txt","wt");
if(infp == NULL || outfp == NULL) {
printf("打开文件失败!\n");
return 1;
}
while(!feof(infp)) {
fgets(s,81,infp);
num[n++] = ToLong(s);
}
fclose(infp);
for(i = 0; i < n; ++i) {
if(cnt && cnt % 20 == 0) {
fprintf(outfp,"\n");
printf("\n");
}
fprintf(outfp,"%ld ",num[i]);
printf("%ld ",num[i]);
}
fclose(outfp);
return 0;
}追问输出结果不对啊?