C二进制文件读取缓冲区声明位置差异

驱魔

大家好,我是C语言编程的新手,这是我的第一个问题,我尝试读取C代码中的二进制文件,但是解决方案是,当缓冲区清零位置更改为注释行时,更改。为什么会发生这种情况?

int main() {
    char *ch;
    //unsigned char *buffer;
    char buffer[129];
    //char *buffer;
    int counter=0;
    FILE *filee;
    int x;
    int i=0;
    filee = fopen("testfile.mtx" , "rb");
    int counter2 = 0;

    while(1) {
        ch = fgetc(filee);
        if (ch == EOF)
            break;
        else
          counter ++ ;
    }
    printf("COUNTER : %d\n",counter);
    //buffer = malloc ((sizeof(char) * counter) +1) ;
    //unsigned char *buffer = malloc(sizeof(char) * (counter+1));
    //char buffer[counter];
    fread(buffer,sizeof(buffer),1,filee);
    if(filee== NULL) {
        printf("Fİle cannot opened\n");
    }

    for(i = 0; i<counter; i++){
        printf("%u ", buffer[i]);
        counter2++;
        if(counter2 % 8 == 0 ) {
            printf("\n");
        }
    }
    fclose(filee);

    return 0;
}
4386427

问题与此行有关:

fread(buffer,sizeof(buffer),1,filee);

在这里,您可以sizeof(buffer)用来计算要读取的字节数。

使用时

char buffer[129];

您将sizeof(buffer)成为129。

使用时

char *buffer;
buffer = malloc....

您将获得sizeof(buffer)一个指针的大小(通常为4或8)。

因此,在两种情况下,您读取了不同数量的字节。

您可能想做:

    fread(buffer, counter, 1, filee);

顺便提一句:

1)您需要先返回到输入文件的开头 fread

2)变量dosya未声明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C ++:将读取的二进制文件存储到缓冲区

来自分类Dev

NodeJS读取二进制浮点缓冲区

来自分类Dev

将int写入二进制缓冲区(Android)并使用C ++读取

来自分类Dev

文件流将十六进制文件读入二进制缓冲区

来自分类Dev

将二进制数据写入缓冲区

来自分类Dev

C ++使用平面缓冲区在二进制文件中写入具有循环依赖关系的数据

来自分类Dev

在Linux上从char缓冲区写入二进制文件

来自分类Dev

在Perl中将“文件” Linux命令应用于二进制缓冲区

来自分类Dev

将二进制文件读入无符号字符向量缓冲区

来自分类Dev

在协议缓冲区消息中存储二进制数据缓冲区

来自分类Dev

在C ++中管理二进制数据的缓冲区

来自分类Dev

在C ++中管理二进制数据的缓冲区

来自分类Dev

读取二进制文件c

来自分类Dev

如何将二进制文件缓冲区解压缩为两个变量?

来自分类Dev

如何将字符串转换为二进制缓冲区?

来自分类Dev

socket.io二进制缓冲区的优点?

来自分类Dev

使用协议缓冲区发送二进制数据的正确方法是什么?

来自分类Dev

节点缓冲区,从utf8到二进制

来自分类Dev

从二进制缓冲区初始化变量的正确方法是什么?

来自分类Dev

VHDL-BCD到二进制输入缓冲区-显示结果的问题

来自分类Dev

二进制字符数组到 stringstream 并从缓冲区弹出

来自分类Dev

协议缓冲区-将具有相同.proto文件的二进制数据文件合并到一个文件中

来自分类Dev

协议缓冲区-将具有相同.proto文件的二进制数据文件合并到一个文件中

来自分类Dev

如何将C二进制缓冲区转换为Python字符串中的十六进制表示形式?

来自分类Dev

使用 nodejs/npm 的请求包发布时,如何发布纯文件缓冲区而不是二进制编码文件?

来自分类Dev

C:从二进制文件读取字节

来自分类Dev

在C ++中读取二进制文件的正确方法?

来自分类Dev

从C中的文件读取二进制整数

来自分类Dev

C ++:提高ifstream二进制文件的读取速度

Related 相关文章

  1. 1

    C ++:将读取的二进制文件存储到缓冲区

  2. 2

    NodeJS读取二进制浮点缓冲区

  3. 3

    将int写入二进制缓冲区(Android)并使用C ++读取

  4. 4

    文件流将十六进制文件读入二进制缓冲区

  5. 5

    将二进制数据写入缓冲区

  6. 6

    C ++使用平面缓冲区在二进制文件中写入具有循环依赖关系的数据

  7. 7

    在Linux上从char缓冲区写入二进制文件

  8. 8

    在Perl中将“文件” Linux命令应用于二进制缓冲区

  9. 9

    将二进制文件读入无符号字符向量缓冲区

  10. 10

    在协议缓冲区消息中存储二进制数据缓冲区

  11. 11

    在C ++中管理二进制数据的缓冲区

  12. 12

    在C ++中管理二进制数据的缓冲区

  13. 13

    读取二进制文件c

  14. 14

    如何将二进制文件缓冲区解压缩为两个变量?

  15. 15

    如何将字符串转换为二进制缓冲区?

  16. 16

    socket.io二进制缓冲区的优点?

  17. 17

    使用协议缓冲区发送二进制数据的正确方法是什么?

  18. 18

    节点缓冲区,从utf8到二进制

  19. 19

    从二进制缓冲区初始化变量的正确方法是什么?

  20. 20

    VHDL-BCD到二进制输入缓冲区-显示结果的问题

  21. 21

    二进制字符数组到 stringstream 并从缓冲区弹出

  22. 22

    协议缓冲区-将具有相同.proto文件的二进制数据文件合并到一个文件中

  23. 23

    协议缓冲区-将具有相同.proto文件的二进制数据文件合并到一个文件中

  24. 24

    如何将C二进制缓冲区转换为Python字符串中的十六进制表示形式?

  25. 25

    使用 nodejs/npm 的请求包发布时,如何发布纯文件缓冲区而不是二进制编码文件?

  26. 26

    C:从二进制文件读取字节

  27. 27

    在C ++中读取二进制文件的正确方法?

  28. 28

    从C中的文件读取二进制整数

  29. 29

    C ++:提高ifstream二进制文件的读取速度

热门标签

归档