我有一个文本文件,并逐个字符地读取它。 但我想连接这些字符并有一个数组 字符。
据我所知,我应该使用strcat。 但是我无法将从文件中读取的字符转换为 const char* 这样我就可以使用 strcat:
char * strcat ( char * destination, const char * source );
在调试器中我可以看到 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();
最佳答案
假设您的文件不超过 999 个字符,这应该可行(未添加错误检查)。 不需要使用 strcat。事实上,在这里使用 strcat 是愚蠢的。
ifstream infile;
infile.open( "Gmv.txt", ifstream::in);
char result[1000];
int i = 0;
while (infile.good())
{
result[i] = infile.get();
++i;
}
result[i] = 0; // Add the '\0' at the end of the char array read.
infile.close();
strcat 将以 0 ('\0') 结尾的字符数组作为第二个参数。你的 char 没有以 0 结尾。因此你得到了错误的指针错误。
顺便说一句,你可以缩短时间
while (infile)
result[i++] = infile.get();
关于c++ - 从文件中逐个读取一个字符并将结果连接到一个字符数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15861525/