看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《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
firejox:要用system 需include stdlib.h 07/17 17:09
※ 編輯: CindyLinz 來自: 210.242.246.249 (07/17 17:10)
CindyLinz:我用 .c 檔, compiler 沒叫我就忘記了 ^^| 07/17 17:11
tjjh89017:所以sprintf的用法就很類似sstreama嗎? 07/17 20:32
CindyLinz:可以這樣類比.. 07/17 23:33
firejox:也可以這樣寫char cmd[15]="vi "; 07/17 23:41
firejox: strcat(strcat(cmd,a),".c"); 07/17 23:42
weiyucsie:樓上的寫法看起來有點累的樣子XD 07/18 01:59
firejox:其實也可以不用a直接scanf("%s",cmd+3);strcat(cmd,".c"); 07/18 02:11
firejox:或者另外寫一個bash然後直接system呼叫 XDD 07/18 02:23
Yshuan:推 sprintf第一個想到的function 07/18 16:10
※ 編輯: CindyLinz 來自: 210.242.246.249 (09/10 13:18)