C++ fstream : More signs readen than intended

标签 c++ file

这个问题对我来说真的很奇怪。我正在创建并写入一个简单的文件。 当我阅读这段代码时:

return_chars = new char[10];

file.read(return_chars, 10);

结果仅仅多了4个字符!它有 14 个符号长。 只有在读取 10 个字符和某些其他数字(例如 24)时才会发生这种情况。 在长度为 8 时,它不会发生。 它添加的符号总是相同的 10 个字符:CE=0

例如,这是我用来显示我从文件中读取的内容的代码:

MessageBoxA(NULL, return_chars, "title", 0);

问题出在哪里?哦 非常感谢!

最佳答案

只是根据您提供的有限信息进行猜测,也许 showText 方法无法正确处理 return_chars 数组,因为它不是空终止字符串?你可以试试,

return_chars = new char[11];

file.read(return_chars, 10);
return_chars[10] = '\0';

showText(return_chars);

关于C++ fstream : More signs readen than intended,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17757173/

相关文章:

c++ - inplace_merge : What causes a complexity of N*log(N) vs. N-1?

c# - 在声明数组时将 C++ 代码转换为 C#

c++ - STL 算法和迭代器代替 "for"循环

java - 新文件在 Eclipse 目录中创建,而不是在当前目录下

c++ - 通过给出一个词从c++文件中删除一行

c++ - 在给定 XWindow* 的 X (*nix) 上实现剪贴板功能?

java - 如何在Qt中使用JNI创建字符串数组

c - 读取失败的 C 程序

java - 最后尝试关闭多个流

java - Android 5 至 6 问题 : External Storage Path File. Exists() 已损坏/正在寻找替代方案