[英]Passing a Command Line Argument and a textfile to a program
我有一個讀取和反向編碼分配,在該分配中,我需要傳遞一個文本文件和一個字符( -L
或-W
),具體取決於操作員是希望文本文件通過行還是單詞反向返回。 (我還應該注意,該分配要求在代碼執行過程中,用戶什么都不需要。必須確定在命令行中需要哪種變體。)
我不需要代碼來反轉行或單詞的幫助,但是需要了解如何接受字符和文本文件,然后在代碼中使用它們的幫助。 我使用的參數嘗試(int argc, char *argv[])
的main
,但是只要我嘗試在剛剛通過-L
終端或者說Command not found
或clang: error: argument to '-L' is missing (expected 1 value)
另外,當我的老師將文本文件傳遞給程序時,他經常使用>
。 有人可以解釋如何使用嗎?
防爆。 program.c > hello.txt
然后,他最終將在程序中使用該.txt
。
考慮一下:
program -L < data.txt
要么
program -W < data.txt
要么
cat data.txt | program -L
“ -L”或“ -W”將在argv[1]
。
祝好運!
傳遞命令行參數的想法如下
Argc :傳遞給執行的“字符串”(參數)的參數計數器數量。 它始終為1或更大,因為函數的調用是自變量。
Argv :參數向量(指針),是指向命令行接收的每個參數的指針
程序調用示例 :
./myprogram -w
的argc = 2
argv將具有兩個指向string(char)的指針:
argv [0] =“ ./myprograms”
argv [1] =“ -w”
現在有你的問題
通過命令行執行程序時,其中有很多選擇:
1)其中之一是提供文件的程序輸入(文件將逐字符傳遞到以EOF或-1結尾的標准輸入-而不是ascii字符-)可以通過以下方式完成
./program.c <hello.txt
2)將程序的輸出重定向到文件
./program.c> hello.txt
您要做的是在傳遞參數的同時輸入文件,這可以通過以下方式完成
./program.c < hello.txt -L
重要說明 :“ <hello.txt”將不被視為參數,因此在這種情況下,將使用argc和argv
的argc = 2
的argv [0] = “./ program.c”
的argv [1] = “ - L”
希望這有助於在您需要更多幫助或不清楚的地方發表評論。 祝您課程順利!!!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.