前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VSCode原来也有中文版ChatGPT,神了!

VSCode原来也有中文版ChatGPT,神了!

作者头像
Linux兵工厂
发布2023-03-30 13:49:15
5.3K0
发布2023-03-30 13:49:15
举报
文章被收录于专栏:Linux兵工厂

START


hello,大家好!我是木荣君。最近比较火的ChatGPT着实令人眼前一亮。先来说一说ChatGPT是什么?ChatGPT(全名:Chat Generative Pre-trained Transformer),美国OpenAI研发的聊天机器人程序,于2022年11月30日发布。ChatGPT是人工智能技术驱动的自然语言处理工具,它能够通过理解和学习人类的语言来进行对话,还能根据聊天的上下文进行互动,真正像人类一样来聊天交流,甚至能完成撰写邮件、视频脚本、文案、翻译、代码,写论文等任务。看到这儿,ChatGPT功能着实强大,好多人都想体验一把,但是国内注册ChatGPT账号非常的繁琐和麻烦,今天给大家推荐一个类似ChatGPT的插件,而且是在VSCode的中插件,木荣君本人体验了一把,感觉也很丝滑。关键是可以集成到VSCode当中,这让我对VSCode的爱又多了一点!

ChatPlus中文版

  • vscode中搜索插件chat moss进行安装

开始调戏ChatPlus

  • 写一首代码相关的诗词
  • C语言实现一个链表
  • 下面是ChatPlus输出的代码,大家可以看看是否正确附代码(原装):
代码语言:javascript
复制
#include <stdio.h>
#include <stdlib.h>

// 定义链表结构体
struct Node {
    int data;
    struct Node* next;
};

// 初始化链表头结点
struct Node* head = NULL;

// 插入元素到链表尾部
void insert(int data) {
    // 分配新节点内存空间
    struct Node* newNode = (struct Node*) malloc(sizeof(struct Node));
    // 设置新节点数据
    newNode->data = data;
    newNode->next = NULL;
    
    if (head == NULL) {
        // 如果链表为空,则将新节点作为头结点
        head = newNode;
    } else {
        // 否则将新节点插入到链表末尾
        struct Node* tempNode = head;
        while (tempNode->next != NULL) {
            tempNode = tempNode->next;
        }
        tempNode->next = newNode;
    }
}

// 删除指定元素
void delete(int data) {
    if (head == NULL) {
        printf("链表为空,无法删除!\n");
        return;
    }
    if (head->data == data) {
        // 如果要删除头结点,则直接将下一个节点作为新的头结点
        struct Node* tempNode = head;
        head = head->next;
        free(tempNode);
        return;
    }
    // 搜索要删除的节点
    struct Node* tempNode = head;
    while (tempNode->next != NULL && tempNode->next->data != data) {
        tempNode = tempNode->next;
    }
    if (tempNode->next == NULL) {
        // 没有找到要删除的节点
        printf("要删除的元素不存在!\n");
        return;
    }
    // 将下一个节点连接到要删除的节点的下一个节点
    struct Node* delNode = tempNode->next;
    tempNode->next = delNode->next;
    free(delNode);
}

// 打印链表元素
void printList() {
    if (head == NULL) {
        printf("链表为空!\n");
        return;
    }
    struct Node* tempNode = head;
    printf("链表元素: ");
    while (tempNode != NULL) {
        printf("%d ", tempNode->data);
        tempNode = tempNode->next;
    }
    printf("\n");
}

int main() {
    // 在链表尾部插入元素
    insert(1);
    insert(2);
    insert(3);
    insert(4);
    insert(5);
    printList(); // 预期输出:链表元素:1 2 3 4 5
    
    // 删除元素
    delete(3);
    delete(6); // 不存在的元素
    printList(); // 预期输出:链表元素:1 2 4 5
    
    return 0;
}

  • Linux中进程间通信
  • C语言实现一个tcp服务器
代码语言:javascript
复制
以下是一个使用 C 语言实现的基本 TCP 服务器的代码示例:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <unistd.h>

#define PORT 8080

int main() {
    int server_fd, new_socket, valread;
    struct sockaddr_in address;
    int opt = 1;
    int addrlen = sizeof(address);
    char buffer[1024] = {0};
    const char* hello = "Hello from server";

    // 创建 TCP 套接字
    if ((server_fd = socket(AF_INET, SOCK_STREAM, 0)) == 0) {
        perror("socket failed");
        exit(EXIT_FAILURE);
    }

    // 设置套接字选项
    if (setsockopt(server_fd, SOL_SOCKET, SO_REUSEADDR | SO_REUSEPORT, &opt, sizeof(opt))) {
        perror("setsockopt");
        exit(EXIT_FAILURE);
    }
    address.sin_family = AF_INET;
    address.sin_addr.s_addr = INADDR_ANY;
    address.sin_port = htons(PORT);

    // 绑定地址和端口
    if (bind(server_fd, (struct sockaddr *)&address, sizeof(address))<0) {
        perror("bind failed");
        exit(EXIT_FAILURE);
    }

    // 监听新连接
    if (listen(server_fd, 3) < 0) {
        perror("listen");
        exit(EXIT_FAILURE);
    }

    while (true) {
        // 接受新连接
        if ((new_socket = accept(server_fd, (struct sockaddr *)&address, (socklen_t*)&addrlen))<0) {
            perror("accept");
            exit(EXIT_FAILURE);
        }

        // 读取客户端发送的数据
        valread = read(new_socket, buffer, 1024);
        printf("%s\n",buffer );

        // 向客户端发送欢迎消息
        send(new_socket, hello, strlen(hello), 0);
        printf("Hello message sent\n");
        close(new_socket); // 关闭连接
    }
    return 0;
}


在这个示例中,我们首先创建了一个 TCP 套接字,并将其绑定到指定的 IP 地址和端口上。接着,我们通过调用 `listen()` 函数开始监听新连接。当有新的客户端连接时,我们使用 `accept()` 函数接受连接,并读取客户端发送的数据。最后,我们向客户端发送欢迎消息,并关闭连接。

这是一个简单的 TCP 服务器示例,可以根据需要进行修改和扩展,例如使用多线程或 epoll 等技术来实现高并发处理。

小结

好了,有兴趣的小伙伴可以试着安装一下。个人觉得,娱乐一下还可以,仅作参考不可尽信哦!


本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-03-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Linux兵工厂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ChatPlus中文版
  • 开始调戏ChatPlus
  • 小结
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档