作者Ctmate (City*Mate)
看板C_and_CPP
標題[問題] command-line argument
時間Wed Jan 20 10:53:08 2010
開發平台: 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