
你这个程序
有几个问题: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是硬盘容量的最大单位,最小的单位是“字节”


评论列表(0条)