c語言printflong
『壹』 c語言中,我這個long int輸出是怎麼的
在Win
32的情況下long和int是一樣的,其能表示的范圍是一樣的,我先你的結果可能超出int和long所能夠表示的范圍了。建議採用__int64,改寫後的程序為:
#include<stdio.h>
void
main()
{
__int64
f1,
f2;
int
i;
f1
=
f2
=
1;
for(
i=0;
i<20;
i++
){
printf(
"%I64d,%I64d",
f1,
f2
);
f1
=
f1
+
f2;
f2
=
f1
+
f2;
}
getch();
}
『貳』 關於C語言long的用法
long關鍵字表示一種整型數據類型。它的用法與int、float、double等數據類型是一樣的。在輸入、輸出時,一般控制符使用%l
#include<stdio.h>
intmain()
{
longl;
scanf("%l",&l);
printf("%l",l);
return0;
}
『叄』 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要稍慢一些,所以在輸出大量數據時,要盡量避免使用。
『肆』 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佔用的空間值。
『伍』 關於在C語言中long long類型的輸入輸出問題,是不是printf(「%lld」,n)和scanf("%lld",&n)
同編譯器有關。VC++ 在32位機上 用 _int64 表示 long long.
格式 用 "%I64d" 輸入輸出
『陸』 c語言如何用printf輸出long long類型
首先說明一下,long
long
類型僅在C99標準的編譯器中支持編譯的,所以要輸出long
long類型數據就要保證編譯器支持C99標准,目前支持的編譯軟體有DEV
C++、CodeBlocks、c-free等。微軟的VC++6.0是不支持的。
『柒』 c語言中的long int f=123L 結果在printf中f=%ld 為什麼f=123
%ld:在C語言標准輸入輸出中表示的的是長整型數據。
longintf=123L;//
後綴L或者l表示該常量為long int類型。如同浮點數的f或者F表示是單精度浮點數,不會輸出的。
『捌』 C語言中long int的輸入、輸出格式分別是什麼
c語言中有一個和long long類型想同的類型是int64,他使用的格式是%I64d,如果是long long 那麼格式是%lld。
『玖』 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,表示輸出佔十位寬度等。
『拾』 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語言printflong擴展閱讀:
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語言