首页 > 其他分享 >CHAT-GPT初使用

CHAT-GPT初使用

时间:2023-06-16 14:01:21浏览次数:29  
标签:文件 CHAT 文件大小 BUFFER 30M file 使用 GPT SIZE

拿chatgpt去试验了一下,一个挺小的需求,但是前后还是更改了三次,体验就是它可以不断改进之前实现的代码,但需要提需求的人比较清楚需求内的细节,差不多类似于,我有想法,它来实现,还是可以提高不少效率的。具体体验如下:

我:请写一段C语言代码,将2M大小的文件填充0xff到30M,要求不能申请超过1K大小的内存?

 CHAT-GPT:这是一个C语言的代码示例,它使用了一个1K的缓冲区来填充文件。请注意,这个代码没有包含错误处理,你可能需要根据你的实际需求来添加。
#include <stdio.h>

#define BUFFER_SIZE 1024

void fill_file(const char* filename) {
    FILE* file = fopen(filename, "ab");
    if (file == NULL) {
        printf("无法打开文件\n");
        return;
    }

    char buffer[BUFFER_SIZE];
    for (int i = 0; i < BUFFER_SIZE; i++) {
        buffer[i] = 0xff;
    }

    for (int i = 0; i < (30 * 1024 * 1024) / BUFFER_SIZE; i++) {
        fwrite(buffer, 1, BUFFER_SIZE, file);
    }

    fclose(file);
}

int main() {
    fill_file("test.txt");
    return 0;
}

CHAT-GPT:这段代码首先打开一个文件,然后创建一个1K大小的缓冲区并填充0xff。然后,它将这个缓冲区写入文件,直到文件的大小达到30M。最后,它关闭文件。

 

我:填充的文件大小存在问题,忽略了原始文件的大小,请修改

CHAT-GPT:对不起,我犯了一个错误。你是对的,我应该在原始文件大小的基础上添加数据,直到文件大小达到30M。以下是修改后的代码:

 
#include <stdio.h>

#define BUFFER_SIZE 1024

void fill_file(const char* filename) {
    FILE* file = fopen(filename, "ab");
    if (file == NULL) {
        printf("无法打开文件\n");
        return;
    }

    char buffer[BUFFER_SIZE];
    for (int i = 0; i < BUFFER_SIZE; i++) {
        buffer[i] = 0xff;
    }

    fseek(file, 0, SEEK_END);
    long current_size = ftell(file);

    for (int i = 0; i < ((30 * 1024 * 1024) - current_size) / BUFFER_SIZE; i++) {
        fwrite(buffer, 1, BUFFER_SIZE, file);
    }

    fclose(file);
}

int main() {
    fill_file("test.txt");
    return 0;
}

CHAT-GPT: 这段代码首先打开一个文件,然后创建一个1K大小的缓冲区并填充0xff。然后,它将文件指针移动到文件的末尾,并获取当前的文件大小。然后,它将缓冲区写入文件,直到文件的大小达到30M。最后,它关闭文件。

  我:当前填充的方式仍可能会超出目标30M大小,请对数据非1K对齐的情况进行处理,得到刚好30M大小的文件   CHAT-GPT:你是对的,如果文件大小不是1K的倍数,那么最后一次写入可能会使文件大小超过30M。我们可以在最后一次写入时只写入需要的字节数,以确保文件大小正好是30M。以下是修改后的代码:
#include <stdio.h>

#define BUFFER_SIZE 1024

void fill_file(const char* filename) {
    FILE* file = fopen(filename, "ab");
    if (file == NULL) {
        printf("无法打开文件\n");
        return;
    }

    char buffer[BUFFER_SIZE];
    for (int i = 0; i < BUFFER_SIZE; i++) {
        buffer[i] = 0xff;
    }

    fseek(file, 0, SEEK_END);
    long current_size = ftell(file);
    long target_size = 30 * 1024 * 1024;
    long remaining = target_size - current_size;

    while (remaining > 0) {
        int write_size = remaining > BUFFER_SIZE ? BUFFER_SIZE : remaining;
        fwrite(buffer, 1, write_size, file);
        remaining -= write_size;
    }

    fclose(file);
}

int main() {
    fill_file("test.txt");
    return 0;
}

CHAT-GPT:这段代码首先打开一个文件,然后创建一个1K大小的缓冲区并填充0xff。然后,它将文件指针移动到文件的末尾,并获取当前的文件大小。然后,它将缓冲区写入文件,直到文件的大小达到30M。在最后一次写入时,它只写入需要的字节数,以确保文件大小正好是30M。最后,它关闭文件。

 

标签:文件,CHAT,文件大小,BUFFER,30M,file,使用,GPT,SIZE
From: https://www.cnblogs.com/aghx/p/17485359.html

相关文章

  • ChatGPT:在线免费智能聊天网页版
    在当今网络时代,聊天实现了从文字、语音到视频的全面发展。然而,在众多聊天方式中,许多人更喜欢使用人工智能技术来帮助进行自然的对话交流。那么,是否有一个在线免费ChatGPT网页版,可以提供更好的交互体验呢?答案是肯定的。ChatGPT是一款基于最先进的语言模型技术而设计的智能聊天程序......
  • 服务器22端口没有对外开放,那使用ping命令还能通吗
       `ping`命令是基于ICMP协议的网络诊断工具,主要用于测试网络通信是否正常以及测量数据包往返时间等。它并不依赖于任何端口开放与否的情况,因此即使你的服务器的22端口没有对外开放,使用`ping`命令一样可以进行网络通信测试。当你使用`ping`命令测试某个服务器时,它会发......
  • Go语言之 go-redis 基本使用
    Go语言之go-redis基本使用Redis介绍Redis:https://redis.io/Redis中文网:https://www.redis.net.cn/REmoteDIctionaryServer(Redis)是一个由SalvatoreSanfilippo写的key-value存储系统。Redis是一个开源的使用ANSIC语言编写、遵守BSD协议、支持网络、可基于内存亦可持......
  • 云原生之使用Docker部署kkFileView在线文档管理平台
    (云原生之使用Docker部署kkFileView在线文档管理平台)一、kkFileView介绍1.kkFileView简介kkFileView是一个开源在线文档工具,使用springboot打造文件文档在线预览项目解决方案,支持doc、docx、ppt、pptx、xls、xlsx、zip、rar、mp4、mp3以及众多类文本如txt、html、xml、java、......
  • Vue el-date-picker 日期组件的使用,需要初始化时间,初始化时间时候,注意 日期月份 补0
    Vueel-date-picker日期组件的使用需要初始化时间,初始化时间时候,注意日期月份补0https://www.cnblogs.com/zhoushuang0426/p/10606863.html一:显示年月<el-date-pickerv-model="selectMonth"type="month"placeholder="选择月"@change="jobSearch"va......
  • 使用chrome扩展程序爬取地图数据
    偶然,想爬取城市所有的公交和地铁线路。其实通过8684网站就可以爬取到了。但是好像不够完整,就想从高德地图抓取。阿里的产品也太难了。对新手而言,只会简单的post请求显然不足以完成任务。其实不管什么网站,抽象起来就是获取数据,保存,分析而已。对简单的任务,爬虫用什么语言,就用该语......
  • 浅析微信小程序自动化部署miniprogram-ci介绍及实际使用
    一、miniprogram-ci介绍1、miniprogram-ci简介miniprogram-ci是从微信开发者工具中抽离的关于小程序/小游戏项目代码的编译模块。开发者可不打开小程序开发者工具,独立使用miniprogram-ci进行小程序代码的上传、预览等操作。文档:https://www.npmjs.com/package/min......
  • websocket 使用
     https://www.runoob.com/html/html5-websocket.html   ......
  • solr 模拟数据库like查询(不使用分词)
    IK分词个别拆分的不够完美,另外个别业务逻辑是需要替代数据库的like查询。所以本篇文章是介绍如何在solr中使用类似数据库的like查询。本片文章是介绍如何在solr中使用类似数据库的like操作。首先我们抛弃text_ik。IK分词,因为使用的是like操作,所以这块不能在使用分词了。我们需......
  • Spring----AOP入门介绍、原理与使用
    AOP介绍AOP:面向切面编程,无入侵式编程一种编程范式,指导开发者如何组织程序结构OOP:面向对象作用:在不惊动原始设计的基础上为其做功能增强概念定义Aspect(切面):描述通知与切入点的对应关系(执行位置和共性之间的关系)Aspect声明类似于Java中的类声明,在Aspect中会包含......