本帖最后由 大苏打dd 于 2023-4-13 22:06 编辑
您好,我又想到一些问题,就是数据中还存在No,hh这种类型,像这种能否直接在代码中把if(num==5)改为if(ch=='o')这样,还有一个问题是我发现else if (ch == 'B') {
ss >> num;
if (num == 1) {
ss >> ch >> B1;
这一段代码好像没有生效,我看打印出的数据B1=0 但是B1实际上等于40#include <graphics.h>
#include <fstream>
#include <sstream>
#include <string>
#include <iostream>
#include <conio.h>
#include <limits> // 添加这一行
int main()
{
// 初始化图形模式
initgraph(640, 480, SHOWCONSOLE);
// 打开文件
std::ifstream file("D://cwenjian//lizhu.txt");
// 读取文件中的数据
float j1, k1, B1,B4;
char ch;
std::string line;
int num;
while (std::getline(file, line)) {
std::stringstream ss(line);
while (ss >> ch) {
if (ch == 'j') {
ss >> ch >> j1;
} else if (ch == 'k') {
ss >> ch >> k1;
} else if (ch == 'B') {
ss >> num;
if (num == 1) {
ss >> ch >> B1;
} else if(num==4){
// 处理其他的H值,例如H4、H3等
ss>>ch>>B4;
}
}
}
}
// 画矩形
rectangle(10, 10, 10 + j1, 10 + k1);
rectangle(10+B1, 10, 10 + j1+B1, 10 + k1);
// 关闭文件
file.close();
std::cout << "j1: " << j1 << std::endl;
std::cout << "k1: " << k1 << std::endl;
std::cout << "B1: " << B1 << std::endl;
// 等待用户按键
_getch();
// 关闭图形模式
closegraph();
return 0;
}
这是现在完整的代码 |