#include <wx/wx.h> #include <vector> #include <fstream> #include <sstream> std::vector<wxPoint> west_outline_pix_position{}; class MyFrame : public wxFrame { public: MyFrame() : wxFrame(nullptr, wxID_ANY, "File Example", wxDefaultPosition, wxSize(500, 500)) { // 读取txt文件中所有纬度、经度数据 readTxtFile("data.txt"); // 测试输出 for (const wxPoint& point : west_outline_pix_position) { wxLogMessage("Longitude: %d, Latitude: %d", point.x, point.y); } } void readTxtFile(std::string filename) { std::ifstream file(filename); if (!file.is_open()) { wxLogError("Failed to open file!"); return; } std::string line; while (std::getline(file, line)) { std::istringstream iss(line); double longitude, latitude; if (!(iss >> longitude >> latitude)) { wxLogError("Failed to read data from file!"); return; } west_outline_pix_position.emplace_back(wxPoint(longitude, latitude)); } } private: }; class MyApp : public wxApp { public: bool OnInit() { MyFrame* frame = new MyFrame(); frame->Show(); return true; } }; wxIMPLEMENT_APP(MyApp);
时间: 2024-02-27 09:58:45 浏览: 150
c++万能头文件(包含所有其他头文件)#include<bits/stdc++.h> 注:此cpp文件包含万能头文件以及基本框架
5星 · 资源好评率100%
这段代码存在两个问题:
1. `readTxtFile` 函数中应该将读取的数据转换为整型,而不是浮点型。
2. `std::vector<wxPoint> west_outline_pix_position{}` 中应该指定 `wxPoint` 的构造函数参数为 0 ,否则会导致使用默认构造函数时,`wxPoint` 对象的 x 和 y 值未初始化。
下面是修复后的代码:
```
#include <wx/wx.h>
#include <vector>
#include <fstream>
#include <sstream>
std::vector<wxPoint> west_outline_pix_position{};
class MyFrame : public wxFrame {
public:
MyFrame() : wxFrame(nullptr, wxID_ANY, "File Example", wxDefaultPosition, wxSize(500, 500)) {
// 读取txt文件中所有纬度、经度数据
readTxtFile("data.txt");
// 测试输出
for (const wxPoint& point : west_outline_pix_position) {
wxLogMessage("Longitude: %d, Latitude: %d", point.x, point.y);
}
}
void readTxtFile(std::string filename)
{
std::ifstream file(filename);
if (!file.is_open()) {
wxLogError("Failed to open file!");
return;
}
std::string line;
while (std::getline(file, line)) {
std::istringstream iss(line);
int longitude, latitude;
if (!(iss >> longitude >> latitude)) {
wxLogError("Failed to read data from file!");
return;
}
west_outline_pix_position.emplace_back(wxPoint(longitude, latitude));
}
}
private:
};
class MyApp : public wxApp {
public:
bool OnInit() {
MyFrame* frame = new MyFrame();
frame->Show();
return true;
}
};
wxIMPLEMENT_APP(MyApp);
```
希望能对您有所帮助!
阅读全文