c语言编程问题,麻烦帮我看看这个程序哪里不对。

2025-04-26 09:19:09
推荐回答(1个)
回答1:

#include
#define M 300
long Tolong(char *s);
int main(void)
{   
    char a[32];
    long r[M];
    int i,n;
    FILE*fp1,*fp2;

    if((fp1=fopen("source.txt","r"))==NULL)
    {
        printf("File open error!\n");
        return -1;
    }
    if((fp2=fopen("result.txt","w+"))==NULL)
    {
        printf("File open error!\n");
        return -1;
    }
    n = 0;
    while(!feof(fp1))
    { 
        fgets( a, 31, fp1 );
        r[n] = Tolong( a );
        n++;
    }

    for( i=0; i        fprintf( fp2, "%ld\n", r[i] );
    fclose(fp1);
    fclose(fp2);
    return 0;
}
long Tolong(char *s)
{   
    int i, a=0;
    long r = 0;
    for( i=0; s[i]!=0; i++ )
    {
        if ( s[i] >= '0' && s[i] <='9' )
        {
            a = s[i] - '0';
            r = r*16 + a;
        }
        else if ( s[i] >= 'a' && s[i] <= 'f' )
        {
            a = s[i] - 'a' + 10;
            r = r*16 + a;
        }
        else if ( s[i] >= 'A' && s[i] <= 'F' )
        {
            a = s[i] - 'A' + 10;
            r = r*16 + a;
        }
    }
    return r;
}