veapon
V2EX  ›  问与答

c 语言读二进制文件的问题

  •  
  •   veapon · Oct 27, 2014 · 2711 views
    This topic created in 4241 days ago, the information mentioned may be changed or developed.
    最近在学C语言,在处理二进制的时候碰到了点问题,很无语,搜了很久,换了几种方式都不行,望高手指点下。

    功能和简单,就是读一个1.jpg,然后把它到1.out.jpg里,代码如下,不知道哪里有问题...

    <script src=".js"></script>
    3 replies    2014-10-27 23:23:55 +08:00
    SErHo
        1
    SErHo  
       Oct 27, 2014 via iPad   ❤️ 1
    把 fputs 改为 fwrite
    msg7086
        2
    msg7086  
       Oct 27, 2014
    1. 最好别一次读全文。
    定义一个buffer size,开一个循环,每次 bytesread = fread(buf, sizeof(char), buffer_size, fin)
    然后 fwrite(buf, sizeof(char), bytesread, fout)
    最后检查bytesread != buffer_size -> break

    2. fopen_s是VC的东西,不是C的。

    3. 发gist请加上后缀 binread[.c]。
    veapon
        3
    veapon  
    OP
       Oct 27, 2014
    哦,原来fputs是字符串,fwrite可以处理二进制的...
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4234 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 04:12 · PVG 12:12 · LAX 21:12 · JFK 00:12
    ♥ Do have faith in what you're doing.