简单的问题
当我使用 fread:
fread(ArrayA, sizeof(Reg), sizeBlock, fp);
我的文件指针, fp
已被提前移动吗?
简单的问题
当我使用 fread:
fread(ArrayA, sizeof(Reg), sizeBlock, fp);
我的文件指针, fp
已被提前移动吗?
Answer: 是的,文件指针的位置在读取操作后自动更新,以便连续 fread ()
函数读取连续的文件记录。
<强度 > 澄清: 强度> fread ()
是一个块向函数。 标准原型为 :
size_t fread(void *ptr,
size_t size,
size_t limit,
FILE *stream);
函数读取 stream
指向的流,并将读取的字节移到 ptr
指向的数组中,当下列条件中的任何条件属实时,函数将停止读取 :
limit
elements of size size
, or fread ()
赋予您与 fgetc ()
一样的控制权限, 并具有在单个 I/ O 操作中读取多个字符的优势。 事实上, 内存允许, 您可以将整个文件读入一个阵列, 并在内存中完成全部处理。 这具有显著的性能优势 。
fread ()
通常用于将固定长度的数据记录直接读成支架,但您可以使用它读任何文件。这是我个人阅读大多数磁盘文件的选择。
是的, 调用 fread 确实会移动文件指针 。 文件指针会以实际读取的字节数前进 。 如果 fread 中出现错误, 调用 fread 后的文件位置将不详 。
Yes, The fp
will be advanced by the total amount of bytes read.
In your case the function fread reads sizeBlock
objects, each sizeof(Reg)
bytes long, from the stream pointed to by fp
, storing them at the location given by ArrayA
.
使用ftell ()
int main() {
typedef struct person {
char *nome; int age;
} person;
// write struct to file 2x or more...
FILE *file = fopen(filename, "rb");
person p;
size_t byteslength = sizeof(struct person);
printf("ftell: %ld
", ftell(file));
fread(&p, byteslength, 1, file);
printf("name: %s | age: %d
", p.nome, p.idade);
printf("ftell: %ld
", ftell(file));
fread(&p, byteslength, 1, file);
printf("name: %s | age: %d
", p.nome, p.idade);
//...
fclose(file);
return 0;
}
For example, let s say I want to find a particular word or number in a file. The contents are in sorted order (obviously). Since I want to run a binary search on the file, it seems like a real waste ...
最好、最小、最快、开放的来源、C/C++ 3d 提供方(在3ds max模型的支持下),而不是通用公平市价,
Given a 10 digit Telephone Number, we have to print all possible strings created from that. The mapping of the numbers is the one as exactly on a phone s keypad. i.e. for 1,0-> No Letter for 2->...
I m trying to find the source of a bug I have found in an open-source application. I have managed to get a build up and running on my Windows machine, but I m having trouble finding the spot in the ...
I wrote below code to readin line by line from stdin ex. city=Boston;city=New York;city=Chicago and then split each line by ; delimiter and print each record. Then in yet another loop I try to ...
I was wondering if there were any good free graphics libraries for C that are easy to use? It s for plotting 2d and 3d graphs and then saving to a file. It s on a Linux system and there s no gnuplot ...
Is there anything other than DDD that will draw diagrams of my data structures like DDD does that runs on Linux? ddd is okay and runs, just kind of has an old klunky feeling to it, just wanted to ...
Please note that this is not homework and i did search before starting this new thread. I got Store an int in a char array? I was looking for an answer but didn t get any satisfactory answer in the ...