さまざまな都市の気温を含むファイルを毎週、曜日ごとに読み込むプログラムを作成しようとしています。それが測定された曜日とそれが測定された都市に沿って出力します。
ファイルは、このような形式は次のとおりです。混合入力(文字列/浮動小数点)を同じ行に読み込んで配列に格納する
M
ニューヨーク-5.3
ダラス8.5
ファーゴ-1.3
T
ニューヨーク-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] << " ";
}
}
ファイルは常に上記の形式ですか?常に「ニューヨーク」、「ダラス」、「ファーゴ」が続く平日です。他の都市もありますか?都市の数が変わることはありますか?あなたのプログラムは別のフォーマットのファイルを扱うことができますか? – Lehue
そして構造体とベクトル/構造体の配列を扱うのは大丈夫でしょうか、それともできるだけシンプルに保つべきでしょうか? – Lehue
そして別の質問:なぜ浮動小数点数[30]で30要素のサイズを選んだのですか? 3つの都市が毎週30の平日になるか、30の気温しかないので、10の平日ですか?またはファイルには1週間の情報しか含まれていませんか? – Lehue