|

楼主 |
发表于 2023-4-13 17:55:25
|
显示全部楼层
我试了一下,应该是读取部分的问题,正常数据TD=32.000000, a=496.000000, b=172.000000 但是读出来的却是TD: -858993460
a: -858993460
b: -858993460 请问这应该怎么修改
- #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;
- }
- 这是最新代码,添加了一个显示读取数据的部分
复制代码 |
|