推 z36884:請問一下喔,"I64d"跟"EOF"是什麼意思啊? 08/12 17:05
%I64d是windows對long long int設定的標準,正常而言要用%lld(在linux之類的)
至於EOF是(end of file)簡單來說就是輸入的東西(cin scanf)如果讀到檔尾會回傳的值。
目前我看到的都是-1。
推 z36884:我的做法跟上面類似,不過我用C++寫,不熟悉C,有點不懂 XD 08/12 17:12
C++繼承C,
C寫的出來的 扔到C++編譯都會過,
只是C++有個叫做STL的東西可以偷懶~~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.171.129.198
推 z36884:謝謝小可魚大大解惑囉,這裡果真是高手如雲阿。 08/12 23:55
推 TobyOoO:其實不是正常而言 是C99規範 ... 如果用DEV C++寫 因為也 08/13 00:20
→ TobyOoO:GCC編譯的 所以一樣要用 %lld 喔! 08/13 00:20
→ TobyOoO:另外像是 getchar 是用 return 的方式回傳值; 而gets 因 08/13 00:21
→ TobyOoO:為回傳指標, 所以到檔尾時不會回傳 EOF ,只會 NULL 喔! 08/13 00:22
→ yuscvscv:樓上強者 補充的好詳細(那些回傳值不一的我實在懶的打..) 08/13 01:56
→ yuscvscv:話說%lld在windows系統會出問題啊 即使用Dev寫也還是要 08/13 01:56
→ yuscvscv:用%I64d......//我自己就是用Dev寫的~~ 08/13 01:57
→ yuscvscv:cin cin.get cin.geline 遇到EOF 都是 0 08/13 02:52
→ yuscvscv:getchar 是回傳讀到的字元 EOF == -1 08/13 02:53
→ yuscvscv:gets好像是字串的儲存位址(就是扔進去的) EOF==NULL 08/13 02:59
→ yuscvscv:其他大概不常用了~~~ 08/13 02:59
→ s864372002:EOF=1 NULL=0 ,兩個不一樣,各函式回傳值不同 08/13 23:35
→ yuscvscv:我只是拿那幾個函式去實測XD 不過EOF好像是-1 08/14 03:07
→ TobyOoO:%lld ... 我用得很正常耶.. long long int ?? 08/14 13:56
→ yuscvscv:就是long long啊 有沒有加是沒差~ %lld在windows會怪怪的 08/14 14:43