提示コードの// ##### コメント内部のコードですがmemchr関数で16進数のバイナリ[ 49 44 41 54 ] を見つけてその場所を知りたいいのですがどんな関数を使えばいいのでしょうか memchr関数は1文字しか検索できないため困っています。
参考サイト: http://simd.jugem.jp/?eid=140
cpp
1 2 3void ImageDataPrint(const char *fileName) 4{ 5 std::fstream fs(fileName, std::ios_base::binary | std::ios_base::in); 6 7 if (fs.is_open() == false) 8 { 9 std::cerr << "ファイルが開けません。" << std::endl; 10 } 11 else 12 { 13 //std::cout << "ファイルを開きました。" << std::endl; 14 15 size_t fileSize = fs.seekg(0, fs.end).tellg(); //ファイルサイズ 16 17 fs.seekg(0, fs.beg); //シーク位置を初期に戻す 18 char* fileData = new char[fileSize]; //ファイルデータ 19 fs.read(fileData, fileSize); //バイナリ読み込み 20 21 22 23 // ########################################################################### 24 unsigned int searchPos = 49444154; 25 memchr(fileData,searchPos,sizeof(char) * 4); 26 27 28 if (searchPos != NULL) 29 { 30 31 printf("%d\n",searchPos); 32 std::cout << searchPos << std::endl; 33 34 for (int i = 0; i < fileSize; i++) 35 { 36 37 } 38 } 39 else { 40 std::cerr << "チャンクが見つかりません。" << std::endl; 41 } 42 // ########################################################################### 43 44 45 46 47 48 49 fs.seekg(0, fs.beg); //シーク位置を初期に戻す 50 delete fileData; //メモリ開放 51 52 } 53 54 fs.close(); //ファイルを閉じる 55 56} 57 58
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2021/04/30 03:58
2021/04/30 03:58
2021/04/30 04:03
2021/04/30 04:08 編集
退会済みユーザー
2021/04/30 04:14