作者lazybones (懶)
看板C_and_CPP
標題[問題] cAlternateFileName是empty的情況
時間Mon Nov 2 18:28:55 2009
我在MSDN看到以下內容
If a file has a long file name, the complete name appears in the cFileName
field, and the 8.3 format truncated version of the name appears in the
cAlternateFileName field. Otherwise,
cAlternateFileName is empty.
不過我用以下的語法去做判斷時 會出現非預期的情形
if(FindFileData.cAlternateFileName != NULL)
printf("FileName Too Long\n");
情形就是不管cAlternateFileName是不是empty
他都會印出printf()的內容
請問版友 是我哪邊弄錯了?又必須怎麼改進 謝謝!
--
★
╔╮ ╭═╦╮╭═╦╗╮ ╮╔══╮╭═╦╮╮ ╔╮╔══╮╭══╮
╠╣ ╠═╬╣╭╬╩╯╰╦╦╯╠═╦╮║ ╠╣║║╠╣╠╣ ╰═╦╮
╠╣ ╭║ ╠╣║╰╔╗ ╠╣ ║ ╠╣║ ╠╣║╰╠╣║╰╔╗║ ╠╣
╰╩═╯╰ ╰╝╚═╩╯ ╰╝ ╚═╩╯╰═╩╯╰ ╰╝╚═╩╯╰═╩╯
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.211.0.80
推 VictorTom:那個 empty, 是指 "", 還是指 NULL ?? 11/02 18:54
→ VictorTom:其實您也可以試著把它們字串全印出來看一遍就知道了XD 11/02 18:54
→ lazybones:我試過 若是empty 印出來是"" 11/03 09:25
推 VictorTom:所以是""不是NULL啊, 那你不能用 != NULL來判斷啊@_@" 11/03 09:40
→ VictorTom:如果它只是普通的char[], 那也許就用strcmp(), 或者更簡 11/03 09:40
→ VictorTom:單判斷第一個char是不是'\0'吧:) 11/03 09:40
→ lazybones:或許我說的不夠清楚...這些我都嘗試過了..囧> 11/03 09:49
→ lazybones:結果都一樣... 11/03 09:49
→ lazybones:所以想說是我哪邊理解錯了...Orz 11/03 09:50
→ lazybones:v謝謝 11/03 09:50
推 VictorTom:Err~NULL與""(或者char[0]=='\0')都不行!?小弟也暈了Orz 11/03 09:53
→ lazybones:哈 我再想想看 謝謝喔! 11/03 09:57