顯示廣告
隱藏 ✕
※ 本文為 BruceX 轉寄自 ptt.cc 更新時間: 2013-06-19 00:47:03
看板 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++)1F 06/18 11:58
kikiqqp:printf("argv[%d] = %s\n", i, argv[i]); 顯示啥
olozil:專案文字式設定為幼女控, 方法一:改文字設定3F 06/18 12:29
olozil:方法二: printf("%ls", argv[0])
firejox:幼女控....5F 06/18 13:15
kikiqqp:幼女控....6F 06/18 13:16
shawnba:to kiki: argc 是 2 沒錯,每個顯示如文內所示7F 06/18 13:32
shawnba:to olo: 已是幼女控 >///<    %ls 可完整秀出!!!!! 感恩啦
olozil:專案->屬性->組態屬性->一般->字元集: 使用幼女控字元集9F 06/18 13:34
olozil:改成不是幼女控
shawnba:趕成非幼女,用 %s 就能正常秀出!!!!!11F 06/18 13:38
shawnba:感謝大德! m(_ _)m
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

--
※ 看板: FW 文章推薦值: 0 目前人氣: 0 累積人氣: 1362 
※ 本文也出現在看板: Programming
r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇