這幾個都是C語言格式化輸入輸出時使用的格式符號。其中%U為誤寫,實際為%u。
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:國際域名空間、雅安服務(wù)器托管、營銷軟件、網(wǎng)站建設(shè)、章丘網(wǎng)站維護、網(wǎng)站推廣。
格式化輸出函數(shù)包括printf, fprintf, sprintf等等。
格式化輸入函數(shù)包括scanf, fscanf, sscanf等等。
這類函數(shù)在輸入輸出的時候都有一個參數(shù)為格式化字符串(format_str), 里面介紹了輸入輸出字符串的格式,當需要輸入輸出變量值時,就需要用對應(yīng)的格式化字符來替代。
題目中提到的三種格式分別對應(yīng):
%ld對應(yīng)long型,即長整型。
%d對應(yīng)int型,即整型。
%u對應(yīng)unsigned int型,即無符號整型。
除此以外,還有如下常見的類型。
%hd對應(yīng)short型,即短整型。
%hu對應(yīng)unsigned short型,即無符號短整型。
%f對應(yīng)float型,即單精度浮點型。
%lf對應(yīng)double型,即雙精度浮點型。
%c對應(yīng)char型,即字符型。
%s對應(yīng)char *型,即字符指針/字符數(shù)組(均可稱為字符串)。
%x對應(yīng)int型,不過是以16進制輸入輸出。
%lx對應(yīng)long型,同樣是16進制形式。
以下是一個簡單的例子:
#include?stdio.h
int?main()
{
int?i;
long?l;
unsigned?int?u;//定義三個不同類型的變量。
scanf("%d%ld%u",i,l,u);//格式化輸入三種變量,每個對應(yīng)自己的類型。
printf("i?=?%d\n",?i);
printf("l?=?%ld\n",?l);
printf("u?=?%u\n",?u);//分行格式化輸出三個變量的值。
return?0;
}
如果輸入1 2 3
將輸出
i?=?1
l?=?2
u?=?3
邏輯有些問題,應(yīng)該先讓用戶選擇是用ID刪除還是用Name 刪除。如下:
#include?stdio.h
#include?stdlib.h
int?main()
{
int?id?=?0;
char?name[128];
printf("刪除記錄:\n");
printf("1.?通過ID\n");
printf("2.?通過姓名\n");
printf("請輸入您的選擇:");
int?choose?=?0;
scanf("%d",?choose);
if?(choose?==?1)?{
printf("請輸入ID:");
scanf("%d",?id);
printf("%d\n",?id);
}
else?if?(choose?==?2)?{
printf("請輸入姓名:");
scanf("%s",?name);
printf("%s\n",?name);
}
else?{
printf("選擇錯誤。\n");
}
system("pause");
return?0;
}
C語言限定ID是指在C語言編程中使用限定標識符來限定標識符的作用域。限定標識符用于避免與其他代碼中的標識符沖突,例如定義了同名的變量、函數(shù)或其他符號。
例如,如果你在項目中使用了兩個庫,其中一個庫中的標識符與另一個庫中的標識符重名,那么你可以使用限定標識符將其中一個標識符限定在特定的作用域中,避免沖突。
限定標識符通常是在標識符前加一個前綴,如庫名或命名空間名,以指定其來源。例如,庫“A”中的標識符可以使用前綴“A_”限定,庫“B”中的標識符可以使用前綴“B_”限定。
這不是兩個函數(shù),這是一個函數(shù),extern "C" int listid(int id, OUT *);
中的extren通知編譯器int listid(int id, OUT *)不在本源代碼中實現(xiàn),
"c"通知編譯器用C調(diào)用方式調(diào)用在另外的一個源程序的函數(shù),
C語言默認的調(diào)用方式就是C調(diào)用 C++就不同了,,所以最好加個"c"
另:調(diào)用方式規(guī)定了調(diào)用的時候輸入?yún)?shù)的順序和函數(shù)返回后輸入?yún)?shù)占用的空間由調(diào)用程序釋放還是由函數(shù)釋放。這東西不一定要太懂,知道用"c"去考慮調(diào)用方式就可以了.
參數(shù)不同也是可以的,但是執(zhí)行一定會有錯誤,而且應(yīng)該不能出現(xiàn)同名不同參數(shù)的的令一個函數(shù)。要不連接的時候就找不到正確的函數(shù)。
%ld,%d,%u都是格式說明符中的類型。它的作用是將輸入或者輸出的數(shù)據(jù)按照格式說明符指定的格式進行輸入或者輸出。
(1)%ld表示數(shù)據(jù)按十進制有符號長型整數(shù)輸入或輸出。
(2)%d表示數(shù)據(jù)按十進制有符號整型數(shù)輸入或輸出。
(3)%u表示數(shù)據(jù)按十進制無符號整型數(shù)輸入或輸出。
格式說明符由%和格式字符組成。在一個格式控制字符串中可以有多個格式說明符,每一組格式說明符都是以%開始,以一個格式字符作為結(jié)束。具體類型和所代表含義如下圖:
擴展資料:
當格式說明符限制了輸入或輸出的數(shù)據(jù)類型時,要與數(shù)據(jù)起始定義數(shù)據(jù)類型一一對應(yīng),否則會引起輸入或輸出錯誤。下面介紹一些基本的數(shù)據(jù)定義類型。
(1)void:聲明函數(shù)無返回值或無參數(shù),聲明無類型指針,顯示丟棄運算結(jié)果。(C89標準新增)
(2)char:字符型類型數(shù)據(jù),屬于整型數(shù)據(jù)的一種。(KR時期引入)
(3)int:整型數(shù)據(jù),表示范圍通常為編譯器指定的內(nèi)存字節(jié)長。(KR時期引入)
(4)float:單精度浮點型數(shù)據(jù),屬于浮點數(shù)據(jù)的一種。(KR時期引入)
(5)double:雙精度浮點型數(shù)據(jù),屬于浮點數(shù)據(jù)的一種。(KR時期引入)
(6)_Bool:布爾型(C99標準新增)
(7)_Complex:復數(shù)的基本類型(C99標準新增)
(8)_Imaginary:虛數(shù),與復數(shù)基本類型相似,沒有實部的純虛數(shù)(C99標準新增)
(9)_Generic:提供重載的接口入口(C11標準新增)
參考資料:c語言_百度百科
沒看到圖片里有%id?。≡趐rintf函數(shù)的控制字符串里,%i和%d是一個意思,都是 按十進制輸出對應(yīng)的變量值。寫成%id,就是在輸出十進制數(shù)后加一個字母d。若在別的地方,因為沒有看到代碼,不好說。