2016-04-16 83 views
1

有沒有一種方法可以使用fscanf()從文件中讀取HH:MM格式,並將其視爲int?該文件的格式如下:fscanf讀取小時格式

3 14:50 20.10 

是否有可能像做fscanf(fp, "%d ... %f, &a, &b, &c);b將有1450?

+2

看一看這個[問題](http://stackoverflow.com/questions/20450333/fscanf-with-colon-delimited-data) – sjsam

回答

4

恐怕你不能這樣做。但是,您可以:

fscanf(fp, "%d %d:%d %f", &a, &b1, &b2, &c); 
b = b1 * 100 + ((b1 > 0) * 2 - 1) * b2; // in case b1, b2 are the different sign. 
+0

罰款,只要作品'B1 ','b2'是相同的符號。考慮'-14:50'。 – chux

+0

@chux但「小時格式」不包含負數 –

+0

雖然不太常見,但「小時格式」也用於表示負時間,特別是時區偏移量。 [示例](https://en.wikipedia.org/wiki/Newfoundland_Time_Zone)。直接應用此答案可能會導致錯誤的結果。 – chux