1. c语言如何用printf输出long long类型
首先说明一下,long
long
类型仅在C99标准的编译器中支持编译的,所以要输出long
long类型数据就要保证编译器支持C99标准,目前支持的编译软件有DEV
C++、CodeBlocks、c-free等。微软的VC++6.0是不支持的。
2. C语言中long int的输入、输出格式
//我认为%ld输出的结果是对的,主要是下一个输出与前一个输出合并造成错误的假象。
//每输出两个数就换行,可以解决问题
#include
void
main()
{
long
f1,
f2;
int
i;
f1
=
f2
=
1;
for(
i=0;
i<20;
i++
){
printf(
"%ld,%ld\n",
f1,
f2
);//改过!改过!改过!改过!改过!
f1
=
f1
+
f2;
f2
=
f1
+
f2;
}
getch();
}
3. C语言中如何输出长整型数值
在C/C++中,64为整型一直是一种没有确定规范的数据类型。现今主流的编译器中,对64为整型的支持也是标准不一,形态各异。一般来说,64位整型的定义方式有long long和__int64两种(VC还支持_int64),而输出到标准输出方式有printf(“%lld”,a),printf(“%I64d”,a),和cout << a三种方式。
本文讨论的是五种常用的C/C++编译器对64位整型的支持,这五种编译器分别是gcc(mingw32),g++(mingw32),gcc(linux i386),g++(linux i386),Microsoft Visual C++ 6.0。可惜的是,没有一种定义和输出方式组合,同时兼容这五种编译器。为彻底弄清不同编译器对64位整型,我写了程序对它们进行了评测,结果如下表。
上表中,正确指编译通过,运行完全正确;错误指编译虽然通过,但运行结果有误;无法编译指编译器根本不能编译完成。观察上表,我们可以发现以下几点:
long long定义方式可以用于gcc/g++,不受平台限制,但不能用于VC6.0。
__int64是Win32平台编译器64位长整型的定义方式,不能用于Linux。
“%lld”用于Linux i386平台编译器,”%I64d”用于Win32平台编译器。
cout只能用于C++编译,在VC6.0中,cout不支持64位长整型。
表中最后一行输出方式中的printint64()是我自己写的一个函数,可以看出,它的兼容性要好于其他所有的输出方式,它是一段这样的代码:
CPP
void printint64(long long a)
{
if (a<=100000000)
printf("%d ",a);
else
{
printf("%d",a/100000000);
printf("d ",a0000000);
}
}
这种写法的本质是把较大的64位整型拆分为两个32位整型,然后依次输出,低位的部分要补0。看似很笨的写法,效果如何?我把它和cout输出方式做了比较,因为它和cout都是C++支持跨平台的。首先printint64()和cout(不清空缓冲区)的运行结果是完全相同的,不会出现错误。我的试验是分别用两者输出1000000个随机数,实际结果是,printint64()在1.5s内跑完了程序,而cout需要2s。cout要稍慢一些,所以在输出大量数据时,要尽量避免使用。
4. C语言中long int的输入、输出格式分别是什么
c语言中有一个和long long类型想同的类型是int64,他使用的格式是%I64d,如果是long long 那么格式是%lld。
5. C语言long long的输入输出控制 很简单的
如果支持longlong ,那就应该是
printf("%lld",longintval);
应该没有long double吧
6. c语言的long double怎么输出
用L表示,通常和浮点转换说明一起使用,表示long double类型的值。详细请参考:
(来自《C Primer Plus(第6版-中文版)》第83页)
7. C语言中,已经定义一个数为long double型,该用什么格式输出
%lf
Table 17-5. printf( ) conversion specifier modifiersModifierWith conversion specifierCorresponding argument's typehhd, i, o, u, x, or Xsigned char or unsigned charhhnsigned char *hd, i, o, u, x, or Xshort int or unsigned short inthnshort int *l (ell)d, i, o, u, x, or Xlong int or unsigned long intl (ell)cwint_tl (ell)nlong int *l (ell)swchar_t *l (ell)a, A, e, E, f, F, g, or G(The modifier is permitted, but has no effect)ll (two ells)d, i, o, u, x, or Xlong long or unsigned long longll (two ells)nlong long *jd, i, o, u, x, or Xintmax_t or uintmax_tjnintmax_t *zd, i, o, u, x, or Xsize_t or the corresponding signed integer typeznsize_t * or a pointer to the corresponding signed integer typetd, i, o, u, x, or Xptrdiff_t or the corresponding unsigned integer typetnptrdiff_t * or a pointer to the corresponding unsigned integer typeLa, A, e, E, f, F, g, or Glong double
#include <stdio.h>
#include <stdlib.h>
int main()
{
long double a = 123.456;
printf( "%Lf", a );
}
所以是%Lf
不过我试了并不是所有编译器都支持,因为有的编译器里long double就是double,所以可用%f或%lf
8. C语言怎么输出或输入long类型的
在c语言中,对于数值类型只有通过printf类函数输出这一种方式,比如printf,
sprintf,
fprintf等。这类函数输出时要求有格式符号,其中long
double的格式符号为%llf
以下是一个简单的参考代码,输出到标准输出设备。
#include
int main()
{
long double v = 1.23;
printf("%llf\n", v);//采用%llf格式输出long double 类型
return 0;
}
关于long
double,
需要说明的是,在原始的c标准中是没有这个类型的,c99中才添加了该类型。而在c99及后续的规范中,对于该类型规定的也并不详细,只是要求long
double类型在精度上需要不少于double的精度。于是就出现了有的编译器不支持long
double,
而支持的编译器在实现上也有所区别,目前常见的long
double有占用8字节,10字节,12字节和16字节四种,但输出格式都是相同的%llf。
如果想知道使用的编译器是如何实现的,可以用printf("%d",
sizeof(long
double));输出long
double占用的空间值。
9. C语言中输出long long型数据怎么输出
C语言中输出long long型数据使用%lld格式输出的方法:
1、 long long 是C99标准对整型类型做的扩展,每个long long类型的变量占8字节,64位。其表示范围为-9223372036854775808~9223372036854775807。
2、long long 类型输出的时候,需要用printf函数,用%lld格式输出。 示例代码如下:
long long a = 1234;printf("a=%lld
", a)。
3、输出的各种可用于%d上的格式控制,均可用于%lld上,比如%10lld,表示输出占十位宽度等。
10. C语言中输出long long型数据怎么输出
C语言中输出long long型数据使用%lld格式输出的方法:
1、 long long 是C99标准对整型类型做的扩展,每个long long类型的变量占8字节,64位。其表示范围为-9223372036854775808~9223372036854775807。
2、long long 类型输出的时候,需要用printf函数,用%lld格式输出。 示例代码如下:long long a = 1234;printf("a=%lld ", a)。
3、输出的各种可用于%d上的格式控制,均可用于%lld上,比如%10lld,表示输出占十位宽度等。
(10)c语言ulong型输出扩展阅读:
C语言基本特性
1、高级语言:它是把高级语言的基本结构和语句与低级语言的实用性结合起来的工作单元。 [11]
2、结构式语言:结构式语言的显着特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。
C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。
3、代码级别的跨平台:由于标准的存在,使得几乎同样的C代码可用于多种操作系统,如Windows、DOS、UNIX等等;也适用于多种机型。C语言对编写需要进行硬件操作的场合,优于其它高级语言。
4、使用指针:可以直接进行靠近硬件的操作,但是C的指针操作不做保护,也给它带来了很多不安全的因素。C++在这方面做了改进,在保留了指针操作的同时又增强了安全性,受到了一些用户的支持,但是,由于这些改进增加语言的复杂度,也为另一部分所诟病。
Java则吸取了C++的教训,取消了指针操作,也取消了C++改进中一些备受争议的地方,在安全性和适合性方面均取得良好的效果,但其本身解释在虚拟机中运行,运行效率低于C++/C。一般而言,C,C++,java被视为同一系的语言,它们长期占据着程序使用榜的前三名。 [
特有特点
1、C语言是一个有结构化程序设计、具有变量作用域(variable scope)以及递归功能的过程式语言。
2、C语言传递参数均是以值传递(pass by value),另外也可以传递指针(a pointer passed by value)。
3、不同的变量类型可以用结构体(struct)组合在一起。
4、只有32个保留字(reserved keywords),使变量、函数命名有更多弹性。
5、部份的变量类型可以转换,例如整型和字符型变量。
6、通过指针(pointer),C语言可以容易的对存储器进行低级控制。
7、预编译处理(preprocessor)让C语言的编译更具有弹性。
参考资料:网络-C语言