Visual C++を使用してjpgファイル全体をバイナリモードで読み込もうとしています。次のようにコードは次のとおりです。C++を使用してバイナリモードでファイル全体を読む
FILE *fd = fopen("c:\\Temp\\img.jpg", "rb");
if(fd == NULL) {
cerr << "Error opening file\n";
return;
}
fseek(fd, 0, SEEK_END);
long fileSize = ftell(fd);
int *stream = (int *)malloc(fileSize);
cout << fileSize << '\n';
fseek(fd, 0, SEEK_SET);
int bytes_read = fread(stream, fileSize, 1, fd);
printf("%i\n", bytes_read);
fclose(fd);
問題はbytes_read
は常に1であるfileSize
変数は、ファイルの正しいサイズを含んでいることです。だから私はなぜbytes_read
が常に1であり、fileSize ..と等しくないのか分かりません。
参照:http://stackoverflow.com/questions/116038/what-is-the-best-way-to-slurp-a-file-into-a-ststring-in-c –