我正在尝试编写一个程序来读取来自不同城市的温度的文件,一周中的每一天,最后找到最低和最高温度,并在一周中输出它测量的位置和测量的城市 该文件的格式如下:
中号
纽约-5.3
达拉斯8.5
法戈-1.3
Ť
纽约-3.3
达拉斯5.2
法戈-3.6
w ^
...
我遇到的问题是输入并将其存储在数组中,因为这些行只有一周的名称。另外,我不认为我可以链接>>运营商因为有些线路上有纽约市,其间有一个空白区域。几天以来,我一直在努力解决这个问题,而且我从来没有比这更进一步 这是一门初学者课程,所以请在帮助下牢记这一点:)我会发布一些我设法加密的小代码,这些代码并不多,而且它不起作用。
#include <iostream>
#include <string>
#include <fstream>
#include <sstream>
using namespace std;
int main()
{
string line;
ifstream infile("temps.txt");
float numbers[30] = { 0.0 };
int count = 1;
istringstream iss(line);
string city;
float n;
while (getline(infile, line))
{
if (count % 4 == 0)
{
}
else
{
iss >> city >> n;
}
}
for (int i = 0; i < 10; i++)
{
cout << numbers[i] << " ";
}
}
答案 0 :(得分:1)
从文件中获取一行到字符串后,很容易:
if(line.size() == 1)
{
// you have a day in line
}
else
{
// you have a <city + temperature>, let's parse
// the last space in line is always the one right before the temperature. Here is it's index.
int lastSpace = line.find_last_of(' ');
int temp = std::stoi(line.substr(lastSpace + 1, line.size()));
string cityName = line.substr(0, lastSpace);
}
将温度作为int并将城市名称作为字符串后,您可以根据需要存储它们(数组,地图,列表等)以获得一周的最高温度。