&"og:type" content="webpage">&" /> &"> 我用纯C写的 文件分割与合并程序 合并出来的图片打不开 文本显示乱码 程序合并之后比原程序大了几KB_CMS教程_内存溢出

阅读15

我用纯C写的 文件分割与合并程序 合并出来的图片打不开 文本显示乱码 程序合并之后比原程序大了几KB,第1张

你这个程序

有几个问题:1h_len2一开始没有获得就h_buff1=(char )malloc(h_len1+h_len2);赋值了

2用strcat连接字符串,实际上不能这么做,因为读进来的是二进制数据不是字符串,所以不是'\0'结尾的

3这个更加错误大了

st=strlen(h_buff1);

我给你修改这一段

h_len1=filesize(hb_fn1);

h_buff1=(char )malloc(h_len1+h_len2);

fread(h_buff1,h_len1,1,hb_fp1);

if((hb_fp2=fopen(hb_fn2,"rb"))==NULL)

{

printf("文件2打开错误");

exit(1);

}

h_len2=filesize(hb_fn2);

h_buff2=(char )malloc(h_len2);

fread(h_buff2,h_len2,1,hb_fp2);

if(strcat(h_buff1,h_buff2)==NULL)

{printf("缓冲区

么有合并成功");

}

st=strlen(h_buff1);

printf("%d",st);

修改成

h_len1=filesize(hb_fn1);

h_len2=filesize(hb_fn2);/要先获得文件二的大小/

h_buff1=(char )malloc(h_len1+h_len2);

fread(h_buff1,h_len1,1,hb_fp1);

if((hb_fp2=fopen(hb_fn2,"rb"))==NULL)

{

printf("文件2打开错误");

exit(1);

}

/直接利用原来申请的buffer就可以了/

fread(h_buff1+h_len1,h_len2,1,hb_fp2);

/h_buff2=(char )malloc(h_len2);不需要这个

fread(h_buff2,h_len2,1,hb_fp2);

if(strcat(h_buff1,h_buff2)==NULL)

{

printf("缓冲区么有合并成功");

}

st=strlen(h_buff1);

printf("%d",st);

/

来设置用于控制台窗口

*** 作的API函数如下:

GetConsoleScreenBufferInfo 获取控制台窗口信息

GetConsoleTitle 获取控制台窗口标题

ScrollConsoleScreenBuffer 在缓冲区中移动数据块

SetConsoleScreenBufferSize 更改指定缓冲区大小

SetConsoleTitle 设置控制台窗口标题

SetConsoleWindowInfo 设置控制台窗口信息

此外,还有窗口字体、显示模式等控制函数,这里不再细说。下列举一个示例,程序如下:

#include

#include

#include

void main()

{

HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);

// 获取标准输出设备句柄

CONSOLE_SCREEN_BUFFER_INFO bInfo; // 窗口缓冲区信息

GetConsoleScreenBufferInfo(hOut, bInfo );

// 获取窗口缓冲区信息

char strTitle[255];

GetConsoleTitle(strTitle, 255); // 获取窗口标题

printf("当前窗口标题是:%s\n", strTitle);

_getch();

SetConsoleTitle("控制台窗口 *** 作"); // 获取窗口标题

_getch();

COORD size = ;

SetConsoleScreenBufferSize(hOut,size); // 重新设置缓冲区大小

_getch();

SMALL_RECT rc = ; // 重置窗口位置和大小

SetConsoleWindowInfo(hOut,true ,&rc);

CloseHandle(hOut); // 关闭标准输出设备句柄

}

B<KB<MB<GB其实KB=K,MB=M,GB=G。1B=1024KB,1KB=1024MB,1MB=1024GB,1GB=1024TB,目前TB是硬盘容量的最大单位,最小的单位是“字节”

以上就是关于我用纯C写的 文件分割与合并程序 合并出来的图片打不开 文本显示乱码 程序合并之后比原程序大了几KB全部的内容,包括:我用纯C写的 文件分割与合并程序 合并出来的图片打不开 文本显示乱码 程序合并之后比原程序大了几KB、如何将C/C++程序编译到指定的大小如编译成100KB大小、程序的大小“K\KB\GB\B\G\M\MB"那个大哪个小啊,帮忙拍一下顺序好么!!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:

内存溢出

原文地址:

https://54852.com/zz/9329475.html
大了
(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
香港翡翠台直播香港翡翠台直播一级用户组
51单片机16路流水灯怎么用C语言写,并求每个步骤的讲解
上一篇
2023-04-27
win10系统画图工具在哪里找-4个步骤须知
2023-04-27

发表评论
请登录后评论...
登录
提交

    评论列表(0条)
保存
{label}{label}