我正在制作一個從命令列獲取文本輸入的程式。
基本上它將每個命令列引數作為一個字串,每個字串代表“文本”中的一個單詞,我想列印從命令列(沒有我的輸出名稱)傳遞到螢屏的“文本” .
但是,如果我的命令列引數之一是字串,例如“Hello;” 或 'And)' ,帶一個 ';' 或者在它的末尾有一個 ')' - 正如你所看到的 - 那么它不會列印 ';' 或 ')' 等
。我認為,它甚至無法將這些符號識別為傳入的字串的一部分。
我什至試圖列印“;” 簡單的“你好”中的符號;示例只是為了看看它要做什么(特別是我寫了一些代碼來只列印每個字串引數的最后一個字符)。
#include<stdio.h>
#include<string.h>
int main(int argc , char *argv[]){
int i;
for(i=1 ; i < argc ; i ){
char p = *(argv[i] strlen(argv[i]) - 1);
printf("%c " , p);
}
printf("\n");
return 0;
}
當我像這樣從命令列運行代碼時:
./a.out Hello;
它列印
o
而不是
;
我試過列印 ' ; ' 就其本身而言,它什么也不列印,而且我在這些 ' 之后的下一個字串中出現錯誤;' , ' ) ' 符號,例如找不到錯誤命令。
如果有人知道為什么會這樣,或者我怎樣才能讓這個程式列印“;” 符號等,請幫助我,我是 C 和 gereral 編程的新手。
uj5u.com熱心網友回復:
該;字符由外殼專門解釋。它用于在同一行上分隔多個命令。
所以你要么需要參考字串:
./a.out "Hello;"
或者逃避;:
./a.out Hello\;
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/359882.html
