包含所有 ASCII 字符的二进制文件
Binary file containing all ASCII characters
是否有包含所有 256 个 ASCII 字符的二进制文件(.dat 文件)?我想在我的霍夫曼压缩算法上测试它。
正常使用vim这样的文本编辑器创建文件时,无法添加控制字符等奇怪的字符,不知道有没有人知道有没有这样的文件随时可以使用,或者如果我可以自己制作一个。
听起来很简单。
有什么问题?
void MakeFile(void)
{
unsigned char ascii[128] = {0};
for(int i=1; i<ARRAY_SIZE(ascii); ++i)
{
ascii[i] = ascii[i-1]+1;
}
FILE* fp = fopen("all_ascii.txt", "w");
if (fp == NULL)
{
return;
}
fwrite(ascii, ARRAY_SIZE(ascii), 1, fp);
fclose(fp);
}
您可以使用 for(i=0;i<256;i++)printf("%c",i);
创建一个。
我不知道有这样的文件,但您可以使用这些字符的整数表示或十六进制等。您可以检查它们是否可以使用函数 isprint() 来表示,如果无法打印,它将 return false。
所以我会做的是使用循环并从第一个字符开始,然后使用该函数来确定它是否可以用字符形式表示,或者您是否需要以其他方式表达它。
看看Random.org。
有一个 white noise generator,它会生成一个音频文件,但您可以将其用于压缩测试。
是否有包含所有 256 个 ASCII 字符的二进制文件(.dat 文件)?我想在我的霍夫曼压缩算法上测试它。
正常使用vim这样的文本编辑器创建文件时,无法添加控制字符等奇怪的字符,不知道有没有人知道有没有这样的文件随时可以使用,或者如果我可以自己制作一个。
听起来很简单。
有什么问题?
void MakeFile(void)
{
unsigned char ascii[128] = {0};
for(int i=1; i<ARRAY_SIZE(ascii); ++i)
{
ascii[i] = ascii[i-1]+1;
}
FILE* fp = fopen("all_ascii.txt", "w");
if (fp == NULL)
{
return;
}
fwrite(ascii, ARRAY_SIZE(ascii), 1, fp);
fclose(fp);
}
您可以使用 for(i=0;i<256;i++)printf("%c",i);
创建一个。
我不知道有这样的文件,但您可以使用这些字符的整数表示或十六进制等。您可以检查它们是否可以使用函数 isprint() 来表示,如果无法打印,它将 return false。
所以我会做的是使用循环并从第一个字符开始,然后使用该函数来确定它是否可以用字符形式表示,或者您是否需要以其他方式表达它。
看看Random.org。 有一个 white noise generator,它会生成一个音频文件,但您可以将其用于压缩测试。