包含所有ASCII字符的二进制文件

时间:2015-02-23 08:18:24

标签: c++ vim binary ascii

是否有包含所有256个ASCII字符的二进制文件(.dat文件)?我想在我的霍夫曼压缩算法上测试它。

通常使用像vim这样的文本编辑器创建文件时,我将无法添加像控制字符等奇怪的字符。我想知道是否有人知道是否有这样的文件可以使用或者如果我可以自己做一个。

4 个答案:

答案 0 :(得分:5)

您可以使用for(i=0;i<256;i++)printf("%c",i);创建一个。

答案 1 :(得分:3)

听起来非常简单 有什么问题?

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);
}

答案 2 :(得分:0)

我不知道这样的文件,但您可以使用这些字符的整数表示或十六进制等。您可以检查是否可以使用函数isprint()来表示它们,如果无法打印它将返回false。

所以我要做的是使用循环并从第一个字符开始,然后使用该函数来确定它是否可以用字符形式表示,或者是否需要以其他方式表达它。

答案 3 :(得分:0)

看看Random.org。 有一个white noise generator,它会生成一个音频文件,但您可以将它用于压缩测试。