簡體   English   中英

將命令行參數和文本文件傳遞給程序

[英]Passing a Command Line Argument and a textfile to a program

我有一個讀取和反向編碼分配,在該分配中,我需要傳遞一個文本文件和一個字符( -L-W ),具體取決於操作員是希望文本文件通過行還是單詞反向返回。 (我還應該注意,該分配要求在代碼執行過程中,用戶什么都不需要。必須確定在命令行中需要哪種變體。)

我不需要代碼來反轉行或單詞的幫助,但是需要了解如何接受字符和文本文件,然后在代碼中使用它們的幫助。 我使用的參數嘗試(int argc, char *argv[])main ,但是只要我嘗試在剛剛通過-L終端或者說Command not foundclang: 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM