2024年6月2日发(作者:)

c语言长整型输入格式

C语言中的长整型指的是比整数更大范围的数值类型,其常见的

格式包括有符号长整型int64_t和无符号长整型uint64_t。与其他类

型一样,长整型需要先输入才能进行后续的操作。下面我们将分步骤

阐述C语言长整型的输入格式。

1.使用scanf函数输入长整型数值

首先,我们可以使用C语言中的scanf函数来输入长整型数值,

其使用方法有所不同。我们可以在scanf函数中加上格式化控制字符

串%lld来指定读入的是长整型数据。

例如,如果要读入一个有符号的长整型数据,其形式如下:

long long int signed_long_integer;

scanf("%lld", &signed_long_integer);

类似地,如果要读入一个无符号的长整型数据,则需要加上lu

字符串,其形式如下:

unsigned long long int unsigned_long_integer;

scanf("%llu", &unsigned_long_integer);

2.使用fgets函数手动读入长整型数值

除了使用C语言中的scanf函数来读入长整型数据外,我们还可

以手动使用fgets函数读取数据流,然后进行长整型的转换。

fgets(buf, MAX_LEN, stdin); //手动读取数据流

long long int signed_long_integer = atoll(buf); //将数据流转

换为长整型

其中,buf是一个字符数组,MAX_LEN代表字符数组的长度,

stdin表示标准输入流,atoll是C语言中的一个函数,代表将字符数

组转换为长整型数据。类似地,如果要读取一个无符号长整型数据,

则需要使用atoull函数。

3.使用strtoll函数手动读入长整型数值

除了使用atoll函数外,C语言还提供了strtoll函数可以处理

更多的情况,例如转换从非零字符开始的字符串,处理负数字符串等。

下面是使用strtoll函数读取长整型数据:

char* endptr;

char* str;

str = "12345";

long long int li = strtoll(str, &endptr, 10);

其中,str代表需要转换的字符串,endptr用来记录转换之后剩

余的字符,10代表进制数。与atoll类似,如果要读取一个无符号长

整型数据,则需要使用strtoull函数。

总体来说,C语言中的长整型可以采用多种方式进行读取和转换,

涉及到scanf、fgets以及atoll等函数,不同的情况下可以进行灵活

的选择。需要注意的是,在输入过程中,最好针对不同的类型进行明

确的区分和处理,以便于后续的数值运算和输出处理。