|
楼主 |
发表于 2023-4-13 17:59:58
|
显示全部楼层
要读取 float TD, a, b, L1, L2, L3, B1, H1, hh, GA;文件中这些数据,有什么好的办法吗
TD=32.000000, a=496.000000, b=172.000000, L1=40.000000, L2=15.000000, L3=32.000000, B1=40.000000, H1=32.000000, hh=2.600000 这些是文件中的数据,我觉得可能是我读取的方式不对,但是我不知道应该怎么读,请问有什么更好的办法吗#include <graphics.h>
#include <fstream>
#include <sstream>
#include <string>
#include <iostream>
#include <conio.h>
int main()
{
// 初始化图形模式
initgraph(1040, 480, SHOWCONSOLE);
//float a=496.000000, b=172.000000, L1=40.000000, L2=15.000000, L3=32.000000, B1=40.000000, H1=32.000000, hh=2.600000,GA=1;
// 打开文件
std::ifstream file("D://cwenjian//donglixiang2.txt");
// 读取文件中的数据
// 检查文件是否成功打开
if (!file.is_open()) {
std::cerr << "无法打开文件!" << std::endl;
return 1;
}
// 读取文件中的数据
float TD, a, b, L1, L2, L3, B1, H1, hh, GA;
char eq1, eq2, comma;
std::string line;
std::getline(file, line);
std::stringstream ss(line);
ss >> eq1 >> eq2 >> TD>> comma >> eq1 >> eq2 >>a >> comma >> eq1 >> eq2 >> b >>comma >> eq1 >> eq2 >>L1>> comma >> eq1 >> eq2 >>L2>>comma >> eq1 >> eq2 >>L3>> comma >> eq1 >> eq2 >>B1>> comma>> eq1 >> eq2 >>H1>> comma >> eq1 >> eq2 >>hh;
std::cout << "TD: " << TD << std::endl;
std::cout << "a: " << a << std::endl;
std::cout << "b: " << b << std::endl;
// ...
if (file.fail()) {
std::cerr << "读取数据失败!" << std::endl;
return 1;
}
// 画矩形
//初始化图像网格
::line(a,b,a,b+L1);
::line(a,b+L1,a+H1,b+L1);
::line(a+H1,b+L1,a+H1,b+L1-L2);
rectangle(a+H1,b+L1-L2+2,a+H1+hh,b+L1-2);
::line(a+H1+hh/2,b+L1-L2+2,a+H1+hh/2,b+L1-2);
::line(a+H1,b+L1-L2,a+H1,b+L1-L2-L3/5);
::line(a+H1,b+L1-L2-L3/5,a+H1/3,b);
::line(a,b,a+H1/3,b);
::line(a+H1/4,b,a+H1/4,b-L1/6);
::line(a+H1/4,b-L1/6,a+H1-H1/10,b-L1/6);
::line(a+H1-H1/10,b-L1/6,a+H1-H1/10,b-L1/6+4*L3/5-5*GA);
// 关闭文件
file.close();
// 等待用户按键
_getch();
// 关闭图形模式
closegraph();
return 0;
}
这是目前的代码 |
|