首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将文本文件读入c++中的数组

将文本文件读入c++中的数组
EN

Stack Overflow用户
提问于 2009-01-04 12:57:01
回答 2查看 46.4K关注 0票数 18

将文本文件读入动态一维数组的最有效方法是什么?在每次读取字符后重新分配看起来很愚蠢,在每次读取行之后重新分配似乎也好不到哪里去。我想将整个文件读入数组。你会怎么做?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-01-04 13:04:49

我不太明白你想要什么。您是否希望增量地处理该文件,从其中读取一行,然后放弃它并处理下一行?或者你想把整个文件读入一个缓冲区?如果你想要后者,我认为这是合适的(检查malloc和fopen的NULL返回值,看看文件是否存在,以及你是否有足够的内存):

代码语言:javascript
复制
FILE *f = fopen("text.txt", "rb");
fseek(f, 0, SEEK_END);
long pos = ftell(f);
fseek(f, 0, SEEK_SET);

char *bytes = malloc(pos);
fread(bytes, pos, 1, f);
fclose(f);

hexdump(bytes); // do some stuff with it
free(bytes); // free allocated memory
票数 26
EN

Stack Overflow用户

发布于 2009-01-04 17:16:21

如果要使用ISO,请使用this function

这是litb的答案,包含了一些错误处理...

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/410943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档