2012-03-09 27 views
1

我對創建時間戳驗證碼: 代碼爲C.爲什麼這個文本在線?

void timestamp() 
{ 
    time_t ltime; /* calendar time */ 
    ltime=time(NULL); /* get current cal time */ 
    printf("%s Something\n",asctime(localtime(&ltime))); 
} 

爲什麼在下一行文字「東西」?我能做些什麼來使它在同一條線上? 我很困惑,因爲我在%s之後沒有\ n,所以它應該在同一行上,但它不是。 Thx。

回答

3

asctime規範(C99§7.23.3.1/ 2)的內容如下:

#include <time.h> 
char *asctime(const struct tm *timeptr); 

的asctime功能通過 timeptr在結構中的斷裂下降時間指向轉換成字符串形式

Sun Sep 16 01:03:52 1973\n\0 

注意紐林e時間結束時的角色。

如果您不想在換行符後面加上換行符,您需要自行移除換行符或使用其他庫函數,如strftime

0

是否因爲您在單詞'Something'後面有回車符(\n)轉義符號?這將創建一條新線,將在下一行放置任何以下信息,並在其上留下「某些東西」。

+0

他所描述的問題是,時間戳是在第一行,而「東西」是印在第二行。 – 2012-03-09 03:09:28

+0

啊,我明白了。道歉誤解。 – 2012-03-09 03:10:26

4

退房
asctime()

該字符串之後是一個新行字符( '\ n')和終止空字符。