2011-06-03 109 views
2

我需要爲幾個結構創建幾個id。 現在我想每個ID將開始從00001到99999如何創建一個如下所示的ID號碼:00001 ... 00002 ....?

例如:

  • 第一結構的ID是00001
  • 第二結構的ID是00002
  • .. 。而等...

現在我需要scanf它,然後printf它,以便在黑色窗口中顯示的ID將是這樣的:The id of the first struct is: 00001

我該怎麼做?

我需要使用常規的int還是double

而我如何使用循環for (i=0 ; i<99999 ;i++) 而我是最後的數字?

非常感謝!

+4

你在用什麼語言? – Nikoloff 2011-06-03 11:31:19

+0

它不能是「int」或「double」,因爲它們沒有前導零。int的*表達*可以具有前導零,但這是稍微不同的。 – pavium 2011-06-03 11:39:03

回答

2

對於數值變量,沒有「前導零」的概念。所以如果你想在你的代碼中使用「0001」,你必須把它轉換成一個字符串,根據需要添加前導0。

+0

你能舉個例子嗎? – talmordaniel 2011-06-03 11:41:07

+0

我做了這樣的f1。ID = 00001; \t printf(「\ n這是新字段的ID:」); (i = 1; i <5; i ++) \t printf(「0」); \t printf(「%d \ n」,f1.Id);但我感覺錯了 – talmordaniel 2011-06-03 11:41:54

0

有可以提供給printf的格式化字符串格式化選項:

printf("The id of the first struct is: %05d",id); 

的格式選項

1

您可以將ID存儲爲正常inthere is a nice overview

當您需要打印,只需使用適當的format stringprintf,像這樣:

printf("id = %05d\n", i); 

工作示例,請here

在格式字符串中,%05d表示:

  • %意味着它是一個格式化參數
  • 0意味着你要的號碼零填充
  • 5意味着你希望它5位寬
  • d表示它是您要打印的整數
+0

好的非常感謝你! – talmordaniel 2011-06-03 11:46:09