c++ - 试图从txt文件中读取两条数据并输出[C++]
问题描述
class calcBMI {
public:
string line;
string line2;
fstream search;
short loop = 0;
string weight[6];
string height[6];
int index[6] = { 1, 2, 3, 4, 5 };
int i;
void getHeight();
void getWeight();
};
.
void calcBMI::getWeight() {
search.open("name.txt"); //Opens the text file in which the user details are stored
if (search.is_open())
{
while (getline(search, line) && (getline(search, line2))) { //While the program searches for the lines in the text file
if (line.find("Current Weight(KG): ") != string::npos && (line2.find("Height(Metres)") != string::npos)) { //If the string "Name" isnt the last word on the line
weight[loop] = line; //Assings the strings read from the text file to the array called weight
height[loop] = line2;
cout << index[loop] << ". " << weight[loop] << ", " << height[loop] << endl; //Outputs the index array which loops through the numbers in the array and outputs the weight variable which loops through the strings in the array
loop++; //Iterates the loop
}
}
}
}
所以我试图从一个包含 5 个用户的 txt 文件中读取两条数据。存储的有关用户的数据是他们的姓名、身高、体重和以前的体重。文件的布局/格式如下。
- 姓名:迈克尔
- 当前重量(KG):65
- 之前的四次重量测量:67、69、75、72
- 高度(米):1.7
我正在尝试使用以下代码读取用户的身高和体重,但是当我运行代码时,程序不输出任何内容。
该程序应打印:
- 当前身高(KG):00,身高(米):00
- 当前身高(KG):00,身高(米):00
- 当前身高(KG):00,身高(米):00
- 当前身高(KG):00,身高(米):00
- 当前身高(KG):00,身高(米):00
但是,它什么也不打印。
解决方案
这是一个重写的版本:
bool w = false, h = false;
while (getline(search, line))
{
if (line.find("Current Weight(KG):") != string::npos)
{
weight[loop] = line; //Assings the strings read from the text file to the array called weight
w = true;
}
else if (line.find("Height(Metres)") != string::npos)
{
height[loop] = line;
h = true;
}
if (w && h)
{
cout << index[loop] << ". " << weight[loop] << ", " << height[loop] << endl; //Outputs the index array which loops through the numbers in the array and outputs the weight variable which loops through the strings in the array
loop++; //Iterates the loop
w = false;
h = false;
}
}
推荐阅读
- javascript - 在 webpack 和 babel 构建的 node_modules 中,console.log 的源映射中断
- onelogin - 启动 OneLogin 示例节点应用程序时出现问题
- python - 打印一行后,时间睡眠不循环工作
- javascript - 查找不包含在另一个对象数组中的数组中的元素
- ruby-on-rails - 验证名称没有制表符或反斜杠 - Rails
- jquery - 包含值时如何在 window.open 中使用 _self?
- machine-learning - 在新的未标记的单一观察或数据集上使用经过测试的机器学习模型?
- php - 每x分钟后php post函数调用
- laravel - Laravel 在数据获取上更改 img src
- docker - Nginx & Docker:自动代理路由