我使用C語言編寫網絡遊戲。我在文件中編寫了分數。我也想添加一天的日期。 下面是該文件的結構:日期姓名分數 和代碼:在文件中添加日期 - C
ScoreFile = fopen("scores.txt", "a");
fprintf(ScoreFile, "%s %d\n", Name, Score);
我試過系統(「日期」),但它在標準輸出。我認爲我不能使用fprintf添加日期。
您是否知道允許在文件中添加日期的解決方案? (也許是從time.h的東西?)
非常感謝!
我使用C語言編寫網絡遊戲。我在文件中編寫了分數。我也想添加一天的日期。 下面是該文件的結構:日期姓名分數 和代碼:在文件中添加日期 - C
ScoreFile = fopen("scores.txt", "a");
fprintf(ScoreFile, "%s %d\n", Name, Score);
我試過系統(「日期」),但它在標準輸出。我認爲我不能使用fprintf添加日期。
您是否知道允許在文件中添加日期的解決方案? (也許是從time.h的東西?)
非常感謝!
考慮使用strftime將時間結構轉換爲字符串。
實施例(從上方連結):
#include <time.h>
// ...
char s[30];
size_t i;
struct tm tim;
time_t now;
now = time(NULL);
tim = *(localtime(&now));
i = strftime(s,30,"%b %d, %Y; %H:%M:%S\n",&tim);
提出Jul 9, 2011; 17:55:55\n
在s
像這樣的東西應該工作
time_t now;
time(&now);
printf("... %s\n", ctime(&now));
如果你需要指定你自己的格式,看看strftime
。如果您以後需要閱讀並解析它,則可能最好寫出自紀元以來的秒數(time_t
,可能是ASCII?)。
我們甚至被稱爲無功一樣,笑 –
最簡單的將是:
time_t now = time(NULL);
fprintf(ScoreFile, "[%s] %s %d\n", ctime(&now), Name, Score);
看一看strptime,的strftime和mktime from time.h.
爲了解析:
struct tm timeStruct = {0,0,0,0,0,0,0,0,0};
char *timeBuf = "03061983";
char *p = strptime(timeBuf, "%d%b%y", &timeStruct);
if (p != NULL)
{
// manipulate timeStruct.
// use mktime to get the time_t value
}
這樣寫:
time_t t;
struct tm * timeStruct;
char timeBuf[6];
time(&t);
timeStruct = localtime(&t);
strftime (timeBuf, 6, "%d%b%y", timeStruct)
問候,
優素福
由於它的作品!但文件中的日期:日期:2011年9月9日,星期六; 00:00:28是在兩行而不是隻有一行。有解決方案嗎? – lilawood
如果我找不到,請刪除字符串末尾的\ n,否則我們需要看看你做了什麼。 – MByD
我已經刪除\ n,它是完美的!謝謝:-) – lilawood