Re: [問題] system ("")小問題

看板C_and_CPP作者 (Cindy Wang)時間13年前 (2011/07/17 17:08), 編輯推噓1(109)
留言10則, 5人參與, 最新討論串2/2 (看更多)
※ 引述《m211319 (豆趣的豆豆)》之銘言: : 開發平台(Platform): (Ex: VC++, GCC, Linux, ...) : linux : 問題(Question): : 小弟剛學c語言 : 請問一下system ("")裡面如何加變數阿 : #include <stdio> : main() : { : char a[10]; : printf ("file:"); : scanf ("%s",a); : printf ("file name:%s.c",a); : system ("vi %s.c",a); : } : 這樣做無法system()指令無法讀取我輸入的變數 : 請問專家要如何去改 : 謝謝 system 不能像 printf 那樣加變數, 所以你要直接把要傳給 system 的東西一次準備好 ^^| 你可以這樣寫 #include <stdio.h> int main(){ char a[10]; char cmd[15]; printf ("file:"); scanf ("%s",a); printf ("file name:%s.c",a); sprintf(cmd,"vi %s.c",a); system(cmd); return 0; } 也就是加一個 cmd 傳給 system -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.242.246.249

07/17 17:09, , 1F
要用system 需include stdlib.h
07/17 17:09, 1F
※ 編輯: CindyLinz 來自: 210.242.246.249 (07/17 17:10)

07/17 17:11, , 2F
我用 .c 檔, compiler 沒叫我就忘記了 ^^|
07/17 17:11, 2F

07/17 20:32, , 3F
所以sprintf的用法就很類似sstreama嗎?
07/17 20:32, 3F

07/17 23:33, , 4F
可以這樣類比..
07/17 23:33, 4F

07/17 23:41, , 5F
也可以這樣寫char cmd[15]="vi ";
07/17 23:41, 5F

07/17 23:42, , 6F
strcat(strcat(cmd,a),".c");
07/17 23:42, 6F

07/18 01:59, , 7F
樓上的寫法看起來有點累的樣子XD
07/18 01:59, 7F

07/18 02:11, , 8F
其實也可以不用a直接scanf("%s",cmd+3);strcat(cmd,".c");
07/18 02:11, 8F

07/18 02:23, , 9F
或者另外寫一個bash然後直接system呼叫 XDD
07/18 02:23, 9F

07/18 16:10, , 10F
推 sprintf第一個想到的function
07/18 16:10, 10F
※ 編輯: CindyLinz 來自: 210.242.246.249 (09/10 13:18)
文章代碼(AID): #1E8gQ6RC (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1E8gQ6RC (C_and_CPP)