嘿,伙计们,初学者的问题。
我怎样才能在C语言中读出一个12或13位的长整数(比如一本书的ISBN号)?
我想从一个包含图书信息的文本文件(isbn/name/writer)中读取这个号码。
文本文件的内容如下:
0393312836
发条橙
安东尼·伯吉斯
0199536759
三月中旬
布雷特·伊斯顿·埃利斯



我用的代码是:

int main(void){

    FILE *f;
    char name[MAX], writer[MAX], line[MAX];
    long isbn;

    f=fopen("path.txt","r");
    if(f == NULL){
        return 0;
        }

    while (fgets(line, 1024, f) != NULL){

        sscanf(line,"%ld", &isbn);
        printf("ISBN: %ld\n",isbn);

        fgets(nome, 1024, f);
        printf("NAME: %s",name);

        fgets(line, 1024, f);
        printf("WRITER: %s",writer);


        }
    fclose(f);

    return 0;

}

他能读这些书和作家的名字,但他只能读9位或更少的数字。我要做什么才能使这工作?
提前谢谢。

最佳答案

我认为对于ISBN来说,使用字符串会更好。您不需要对该值执行算术运算,可以存储前导零,还需要一个字符串来存储可以在isbn 10校验和中得到的x。

关于c - C中的长整数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6191685/

10-15 10:00