- cstdio[meta header]
- std[meta namespace]
- function[meta id-type]
namespace std {
size_t fread(void *buffer, size_t size, size_t count, FILE *stream);
}ファイルからcount文字のsizeバイトのデータを読み込む。
ファイル内の位置は、読み取られたバイトだけ進む。
bufferは有効なポインタであること。streamは有効なファイルストリームであること。bufferが指すメモリ領域とstreamが指すファイルストリームの内部バッファが重複していないこと。
正常に読み込むことのできた項目の数を返す。
sizeまたはcountのいずれかが0だった場合、必ず0を返し、bufferは変更されない。
streamからcount個のsizeバイトのデータを読み込む。
読み込んだデータは、bufferが指すメモリの先頭から順に格納される。
読み取りエラーが生じなければ、読み込むデータの大きさはcount * sizeバイトである。
#include <cstdio>
int main() {
std::FILE *file = std::fopen("sample.txt", "r");
if (!file) {
std::perror("ファイルを開けませんでした");
return 1;
}
char buffer[100];
/*
厳密には、sizeof(char)は1バイトであることが保証されているため、
sizeof(buffer) / sizeof(char)は、bufferの要素数と等しくなる。
*/
std::size_t count = std::fread(buffer, sizeof(char), sizeof(buffer) / sizeof(char), file);
std::printf("読み込んだデータの長さ: %zu\n", count);
std::fclose(file);
return 0;
}- std::fread[color ff0000]
- std::fopen[link /reference/cstdio/fopen.md]
- std::fclose[link /reference/cstdio/fclose.md]
- std::perror[link /reference/cstdio/perror.md.nolink]
- std::printf[link /reference/cstdio/printf.md]
Hello, World!
読み込んだデータの長さ: 14
- Clang: ??
- GCC: ??
- Visual C++: ??