0
的代碼爲兩個節目是兩個程序的工作,管道在windows CMD不適合用C寫的
p1.c:
#include <stdio.h>
int main() {
printf("Program1");
return 0;
}
p2.c:
#include <stdio.h>
int main (char argc, char *argv[]) {
printf("%s", argv[1]);
printf(" | Program2");
return 0;
}
當在CMD中輸入p1 | p2
時,預期的輸出 是:Program1 | Program2
。但我得到的輸出是:(null) | Program 2
。很明顯,p1的輸出不是從p2中取得的。我該如何解決這個問題?
工作!順便說一句,我怎樣才能以它的輸出作爲參數進入p2的方式調用p1? – sope 2014-10-05 03:20:10
|是一個CMD exe字符。這對CMD.EXE以外的任何程序都沒有任何意義。如果使用|那麼CMD.exe需要解釋它。我指的是它在p2.c中的使用。 – Noodles 2014-10-05 09:02:12
每個http://stackoverflow.com/questions/2768608/batch-equivalent-of-bash-backticks我會建議'/ f%a在('p1')做p2%a'。如果在批處理文件中,請記住使用%%而不是%。 – keefer 2014-10-05 16:43:03