嘿,伙计们,初学者的问题。
我怎样才能在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/