2013-04-13 28 views
0

我有這個問題如何使用echo來補充輸入並告訴程序需要輸出多少個輸出。請幫忙,使用%echo參數

基本上,我已經整理出了程序邏輯,它是從y個輸入中隨機選擇一個x數的子集。我的代碼在這裏:

問題是,我如何將主參數中的argc變量轉發給程序執行?

上下文中需要我調用:%echo A B C D E F G |子集2,它假設隨機打印2個字符。但我不能這樣做,2號似乎不能在這裏轉發。並且%echo命令的調用似乎也不起作用。任何人都請幫助

int main(int argc){ 
RandomizedQueue<char> q; 
char input; 


while(cin.peek() != '\n'){ 
    cin >> input; 
    q.enqueue(input); 
} 

for(int k = 0; k < argc; k++) 
    cout << q.dequeue() << endl; 

return 0; 

}

+0

RandomizedQueue類是預定義的並且正常工作。入隊函數以隨機順序將輸入添加到隊列中,出隊函數刪除並輸出隊列記憶 – user1819047

回答

0

我覺得在​​的%是不是你應該輸入,而是意味着在命令提示符下本身。所以你輸入:

echo A B C D E F G | ./Subset 2 

假設你的程序被命名爲子集並且在當前工作目錄中。然後,子集將收到argc == 2和argv == {「./ Subset」,「2」}。一旦你這樣做,ARGV [1]將「2」作爲字符串(該計劃的第一個參數)

int main(int argc, char* argv[]) 

:你需要以標準方式(你缺少的argv)申報爲主。你可以做這樣的事情,將其轉換爲int:

int count = atoi(argv[1]); 

你應該對主要的聲明讀了,因爲ARGC不是參數作爲一個數字,它是參數的數目。並且用argc而不是argv聲明main是非常不典型的。

+0

非常感謝John! – user1819047