看板 C_and_CPP
作者 shawnba (冰祕熊巴)
標題 [問題] argv 問題
時間 Tue Jun 18 11:49:47 2013


開發平台(Platform): (Ex: VC++, GCC, Linux, ...)

Visual Studio 2008

int main(int argc, char* argv[])  主函式中執行以下動作

printf("->%s\n", argv[0]);
printf("->%s\n", argv[1]);          執行 test.exe 876   印出以下結果:

->t
->8
=========================
printf("->len:%d, %s\n", strlen(argv[0]), argv[0]);
printf("->len:%d, %s\n", strlen(argv[1]), argv[1]);
                                  執行 test.exe 876   印出以下結果:
->len:1, t
->len:1, 8
=========================
printf("->%s\n", argv[0] + 0);
printf("->%s\n", argv[0] + 1);
printf("->%s\n", argv[0] + 2);
printf("->%s\n", argv[0] + 3);
printf("->%s\n", argv[0] + 4);      執行 test.exe 876   印出以下結果:

->t
->
->e
->
->s
==========================

看起來他把 argv[0] "test.exe" 每個字母都拆為一個字串

懷疑是編譯環境的設定問題 (Visual Studio 2008)

專案是精靈產生的,印象中是選擇 MFC 的函式 (但沒有使用視窗介面)

請問有人遇過嗎?是不是要在專案屬性內調整哪些細項

才能讓 argv[0] 完整秀出 test.exe  呢

感激~~

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.251.192.1
kikiqqp:試著執行 for(int i = 0; i < argc; i++)
printf("argv[%d] = %s\n", i, argv[i]); 顯示啥1F 06/18 11:58
olozil:專案文字式設定為幼女控, 方法一:改文字設定
方法二: printf("%ls", argv[0])3F 06/18 12:29
firejox:幼女控....5F 06/18 13:15
kikiqqp:幼女控....6F 06/18 13:16
shawnba:to kiki: argc 是 2 沒錯,每個顯示如文內所示
to olo: 已是幼女控 >///<    %ls 可完整秀出!!!!! 感恩啦7F 06/18 13:32
olozil:專案->屬性->組態屬性->一般->字元集: 使用幼女控字元集
改成不是幼女控9F 06/18 13:34
shawnba:趕成非幼女,用 %s 就能正常秀出!!!!!
感謝大德! m(_ _)m11F 06/18 13:38
CP64:這篇發生啥事了...(往上看13F 06/18 13:42
maerdimer:這篇怎麼了...??? 哪裡有幼女?!!14F 06/18 15:42
descent:unicode??15F 06/18 16:19
hilorrk:突然對 unicode 非常有好感16F 06/18 16:45
johnhmj:這洗啥咪歹擠?0_017F 06/18 20:34

--