我有这个代码可以正常工作:
FILE *fp;
fp = fopen(filename.c_str(), "rb");
char id[5];
fread(id,sizeof(char),4,fp);
现在我在我的架构中改变了一些东西,而文件名作为文件的完整路径我有一个包含文件数据的字符指针..所以我不需要阅读(fopen)等等..)但只读取char *缓冲区... 我怎样才能做到这一点? 提前谢谢
答案 0 :(得分:1)
char id[5];
strncpy(id,bfr,4);
id[4]='\0';
其中bfr是包含文件数据的缓冲区。
还强烈建议您阅读K& R:C编程语言中关于指针和字符串的章节。
答案 1 :(得分:1)
如果我正确理解您的问题,您希望在缓冲区中间的某个位置访问四个字符的ID。最简单的方法是将数据复制到新缓冲区并添加NULL终止符。
size_t index = 0;
// ...
char id[5];
memcpy(id, &myData[index], 4);
id[4] = '\0';
index += 4;
然后,您可以通过每次阅读时更新索引值来顺序读取缓冲区。