2014-11-20 3 views
3

우선, 동일한 이름의 질문이 있지만 C++은 다루지 만 c는 다루지 않습니다.문자열을 클립 보드에 복사하십시오.

문자열을 클립 보드에 C로 설정하는 방법이 있습니까?

This is the mentioned question if anyone is curious, even though it is for windows.

은 내가 C에서 프로그램을 쓰고 있기 때문에 C에있을 필요가, 나는 클립 보드에 문자열을 복사하고 싶습니다.

printf("Welcome! Please enter a sentence to begin.\n> "); 
fgets(sentence, ARR_MAX, stdin); 
//scan in sentence 
int i; 
char command[ARR_MAX + 25] = {0}; 
strncat(command, "echo '",6); 
strncat(command, sentence, strlen(sentence)); 
strncat(command, "' | pbcopy",11); 
command[ARR_MAX + 24] = '\0'; 
i = system(command); // Executes echo 'string' | pbcopy 

위의 코드는 문자열 외에 2 줄의 새로운 줄을 저장합니다. ARR_MAX는 300입니다.

+0

내가 연결된 질문은 Windows 용입니다. 당신은 OS X에 대한 귀하의 질문에 태그를 붙였습니다. 물론 그것들은 완전히 다릅니다. 귀하의 질문을 명확히하십시오. 또한 ** C 언어를 사용하는 것이 중요한 이유를 설명 할 수 있습니까? –

+0

나는 원하는 것을 정확히 수행하는 짧은 함수를 추가했다. strncat을 사용하지 않고 나에게 지쳐있는 것처럼 보입니다. –

+0

ansswer를 수락하십시오! –

답변

0

osx에 질문을 태그했습니다. 이렇게 충분해야합니다. https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/PasteboardGuide106/Articles/pbCopying.html#//apple_ref/doc/uid/TP40008102-SW1

그러나 비원 (non-native) C를 호출해야하는 문제가 있습니다. 이것이 가능한지 직접 모르겠다.

pbcopy 명령을 호출 할 수있는 몇 가지 해킹 동작을 허용 할 수있는 경우

http://osxdaily.com/2007/03/05/manipulating-the-clipboard-from-the-command-line/

이 매우 쉽게 구현할 수있을 것이다. 다음은 클립 보드에 복사해야하는 짧은 함수입니다. 하지만 osx는 편리하지 않으므로 직접 테스트 할 수 없습니다.

#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 

int copytoclipboard(const char *str) { 

    const char proto_cmd[] = "echo '%s' | pbcopy"; 

    char cmd[strlen(str) + strlen(proto_cmd) - 1]; // -2 to remove the length of %s in proto cmd and + 1 for null terminator = -1 
    sprintf(cmd ,proto_cmd, str); 

    return system(cmd); 
} 

int main() 
{ 
    copytoclipboard("copy this to clipboard"); 

    exit(0); 
} 
+1

고마워요, 그 목적은 C가 아닌가요? – user1753491

+0

예. 나는 객관적인 C에 대한 경험이 없으므로 c와 함께 사용하는 방법에 대해 더 많은 도움을 줄 수는 없습니다. 그러나 나는 그것이 C의 수퍼 세트라고 생각합니다. 그래서 당신이 운이 좋다면 아주 간단 할 수 있습니다. –

+2

그래서 답은 다음과 같습니다. 대신 objective-c를 사용하십시오. 여기 공식 문서 링크가 있습니다 ... – Deduplicator

관련 문제