看板 C_and_CPP 關於我們 聯絡資訊
開發平台: dev c++ 我的command為 "123.exe input.txt output.txt" 如果argc!=3 代表出錯了,可是我的argc一直為4 檢查argv發現 argv[0]=E:\user\123.exe <---多抓了一個command argv[1]=123.exe argv[2]=input.txt argv[3]=output.txt 正確的應該是 argv[0]=123.exe argv[1]=input.txt argv[2]=output.txt 之前似乎都正常,不知道改到了什麼就爛掉了 int main (int argc, char *argv[]) { if (argc != 3) { printf("The correct format is: ID.exe infile outfile\n"); for (int i=0;i<argc;i++) { printf("argv[%d]=%s\n",i,argv[i]); } system("pause"); exit(1); } fr=fopen(argv[1], "r"); fw=fopen(argv[2], "w"); .... } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.249.109
loveme00835:第 0 個是存程式名沒錯 01/20 11:30
loveme00835:他存的東西, 是你在cmd下的參數, 不是你給程式的參數 01/20 11:33
loveme00835:你在命令列下的是 01/20 11:36
loveme00835:E:\user\123.exe 123.exe input.txt output.txt這四個 01/20 11:37
johnhmj:你在 X:\> 底下輸入三個字串,結果就是三個字串。 01/20 13:47
johnhmj:除非你在程式執行後,才輸入字串,結果就是四個字串。 01/20 13:52