Re: [問題] fopen() & fwrite() 問題
※ 引述《loveme00835 (高髮箍)》之銘言:
: ※ 引述《changyuheng (張昱珩)》之銘言:
: : fopen 是 c 的 function,string 是 c++ 的
: : sprintf(name, "..\\Temp\\%s", "20121012");
: 請愛用 snprintf
: snprintf( name, sizeof(name), "..\\Temp\\%s", strdate.c_str() );
^^^^^^^^^^^^
小心這個參數。
http://www.jeffhung.net/blog/articles/jeffhung/1064/
: : "1F ..." 中,
: : 1 是 ASCII table 中的 49,佔 8 bytes,
^^^^^^^
: : F 是 ASCII table 中的 70,佔 8 bytes...
^^^^^^^
這裡怪怪的。既然是 char array 應該只佔 1 byte = 8 bits。
: 標準作法:
: #include <stdint.h>
: #include <inttypes.h>
: char const * input = "1F 08 08 0A 3A 5C 2E 6F 05";
: while( *input ) {
: // 間隔任意數目空白
: while( isspace(*input) )
: ++input;
: uint8_t value;
: sscanf( input, "%" SCNx8, &value );
: fwrite( &value, sizeof(value), 1, fw );
: input += 2;
如果 input 是 "1F 08 3" 或 "1F 08 YA" 可能會爆。
請檢查 sscanf 的 return value。
: }
: 注意標色地方需剛好為 8 bits 且沒有任何 padding 才能容納
: 讀入的數值,
原 po 的 gap 有點大,問題其實不在該用哪個 lib/func,而是沒有型別概念。
建議把《The C Programming Language》當小說好好先全部念完一遍。
--
我的微笑,堅持要有鼻子。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.250.103.120
→
10/14 11:32, , 1F
10/14 11:32, 1F
→
10/14 12:07, , 2F
10/14 12:07, 2F
→
10/14 12:08, , 3F
10/14 12:08, 3F
推
10/15 13:50, , 4F
10/15 13:50, 4F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 4 之 6 篇):