今日观点!CHAT-GPT初使用
拿chatgpt去试验了一下,一个挺小的需求,但是前后还是更改了三次,体
【资料图】
拿chatgpt去试验了一下,一个挺小的需求,但是前后还是更改了三次,体验就是它可以不断改进之前实现的代码,但需要提需求的人比较清楚需求内的细节,差不多类似于,我有想法,它来实现,还是可以提高不少效率的。具体体验如下:
我:请写一段C语言代码,将2M大小的文件填充0xff到30M,要求不能申请超过1K大小的内存?
CHAT-GPT:这是一个C语言的代码示例,它使用了一个1K的缓冲区来填充文件。请注意,这个代码没有包含错误处理,你可能需要根据你的实际需求来添加。#include#define BUFFER_SIZE 1024void 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#define BUFFER_SIZE 1024void 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#define BUFFER_SIZE 1024void 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。最后,它关闭文件。
标签:
拿chatgpt去试验了一下,一个挺小的需求,但是前后还是更改了三次,体
万历元年至八年(1573-1580),贵州遭受到了严重的灾情,社会秩序和民
2023年,中国线下演出市场井喷。日本歌手美依礼芽以成名曲《极乐净土》
1、安科丽净澈纯皙安瓶精华液,是安徽鑫华坤生物工程有限公司旗下的一
据“网信连云港”微信公众号近日一条涉江苏连云港“女子输液被陌生男子
鼎捷软件20CM涨停,昆仑万维涨超10%,元隆雅图涨停,万兴科技、挖金客
将莎莎国际(00178)2024财年及2025财年销售预测分别下调11%及10%,而其
产品需求是如何落地到原型设计的?本文将结合案例和大厂产品经理常用的
据证券时报,针对TCL中环参股子公司Maxeon就叠瓦组件专利起诉通威太阳
淮南市总面积5571平方千米,辖5个区、2个县。位置:淮南市位于东经116