C언어에서 system함수 사용할때 질문 드립니다.

quarterhorse의 이미지

예를들어 printf("hello world! %d",number); 라고 입력했을 경우,

number에 저장된 10진수 값을 화면에 출력해주는 방법이 있는것으로 알고 있습니다.

이를 활용하여 system함수에서도 비슷한 방법으로 구현 할 수 있는지 궁금합니다.

한번 시험삼아, string에 문자열을 저장한 다음에, system("taskkill /f /im %s",string)로 입력해 보고 실행을 하니,

에러가 발생하던데, 혹시 방법을 하시는 분이 있으시면 도움 부탁드리겠습니다.

lithium81의 이미지

system() 함수는 formatted string을 받지 않습니다 (prinft, scanf 등에서 쓰는 문자열 제어, 즉 %s, %d 이런 거 안 받습니다).

문자열로만 주어야 합니다.

간단한 경우에 저는 sprintf 같은 함수를 써서 명령어를 조합하고 건네주는 방법을 씁니다.

sprintf(cmd_buffer, "taskkill /f /im %s", string);
 
system(cmd_buffer);

- 어제보다 나은 오늘, 오늘보다 나은 내일.

quarterhorse의 이미지

formatted string이라고 하는군요... 알려주신 방법대로 한번 써봐야 겠습니다. 감사합니다!