gpt4 book ai didi

将字符串复制到c中的剪贴板

转载 作者:行者123 更新时间:2023-12-04 16:17:11 28 4
gpt4 key购买 nike

首先,我知道有一个同名的问题,但它涉及 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。

最佳答案

您为 osx 标记了您的问题。所以这应该足够了:
https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/PasteboardGuide106/Articles/pbCopying.html#//apple_ref/doc/uid/TP40008102-SW1

但是存在必须调用非本地 c 的问题。我不知道这是否直接可能。

如果您可以接受一些 hacky 行为,您可以调用 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);
}

关于将字符串复制到c中的剪贴板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27051369/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com