c++ - 访问/读取值时浮动损坏(Cout 打印)
问题描述
所以,我目前正在开发一个 OpenGL C++ 项目,在该项目中我尝试加载我自己制作的自定义格式,唯一的问题是单个
cout
语句可能会破坏整个事情。
理解问题所需的所有代码都在这里:
for (int i = vertpos; i<vertpos+vertsize; i++) {
vertices[i] = stof(contents[i]);
}
此代码将从文本文件(内容 = 文件信息)解析的字符串转换为顶点浮点数组(或 GLfloat,发生同样的事情)。
Vertpos 是顶点信息开始的位置(所以在标题之后),vertsize 是在移动到我的元素表之前信息的大小。一切都按预期工作,这是正在渲染的模型的图片
请记住,该程序不完整,因此由于 RGB 值和 UV 值设置不正确(程序用于确定纹理放置和顶点着色的一些其他值),模型具有奇怪的形状:
现在,让我们尝试添加一个小打印功能,这样我就可以看到这些值:
for (int i = vertpos; i<vertpos+vertsize; i++) {
vertices[i] = stof(contents[i]);
cout << vertices[i] << flush;
}
一切正常!. 虽然我想分隔所有内容,但让我们尝试添加一个冒号分隔符:
for (int i = vertpos; i<vertpos+vertsize; i++) {
vertices[i] = stof(contents[i]);
cout << vertices[i] << ":separatorstring,anyseparatorgivesthesameresult::::" << flush;
}
这似乎触发了随机间隔,当我写这个时,一旦我更改了代码,什么都没有发生,但是随后篡改了打印元素的代码(元素表之间的连接),它又发生了。
我很难在网上找到有相同体验的人,这很奇怪。它似乎只是,发生了。
图片(如 1 和 2)之间的任何不一致都是由于旋转模型造成的,我尝试在它旋转的确切时间拍摄图片,并查看它们相同的值。
解决方案
推荐阅读
- user-interface - 如何在 Flutter 中设计兼容屏幕分辨率的 UI?
- javascript - .env 调用不同文件中的变量
- python-3.x - Pandas isin vs Numpy in1d
- laravel - Laravel 与 vagrant/homestead 的新项目
- android - Qt Android:有没有办法用初始化列表初始化 std::map?
- html - 带有特殊字符的 Markdown TOC?
- matlab - Matlab:为什么我不能使用 VideoWriter 创建一个 mp4 文件?
- sql-server - 如何在 Kubernetes Pod 中执行 sql 脚本文件?
- python-3.x - 我正在做一些网络抓取,在此期间我遇到了一个错误,指出“'NoneType' 对象不可下标”
- c++ - `grid' __ 的多重定义在这里首先定义 C++