【发布时间】:2013-04-07 10:48:39
【问题描述】:
我有一个文本文件并逐个字符地读取它。 但我想连接这些字符并有一个数组 字符。
据我所知,我应该使用 strcat。 但我无法将从文件中读取的字符转换为 const char* 以便我可以使用 strcat:
char * strcat (char * 目的地, const char * 源);
在调试器中,我可以看到 chr 有“Bad Ptr”。你会好心帮助我吗?
ifstream infile;
infile.open( "Gmv.txt", ifstream::in);
char result[1000];
while (infile.good())
{
character = infile.get();
const char * chr = reinterpret_cast<const char *>(character);
strcat(result, chr);
}
infile.close();
【问题讨论】:
-
逐字符读取文件效率不高,顺便说一句。您应该大块地读入缓冲区。
-
提示:不要循环
while (infile.good())或while (!infile.eof())。除非您在循环内进行额外检查,否则它将循环一次到多次。原因是当您读取并点击文件末尾时,文件结束标志是 not 设置的。相反,它被设置为您尝试阅读的下一次。不幸的是,逐个字符读取会有点困难,因为您必须在读取字符后添加检查,如果出现错误或文件结束条件,则退出循环。
标签: c++