В вектор записывается не вся информация

213
10 марта 2018, 19:37

Почему когда я выписываю названия городов, выписывается лишь последнее записанное значение?

#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <ctype.h>
#include <stdlib.h>
#include <vector>
#include <fstream>
#include <string>
using namespace std;
struct pogoda {
    string name;
    double a;
    double b;
    double c;
    double d;
    double e;
    double f;
    double g;
double h;
    double i;
    double j;
    double k;
    double l;
};
int main()
{
    vector<pogoda> records;
    ifstream file("E:\\temperatury.txt");
    pogoda tmp;
    while (file >> tmp.name >> tmp.a >> tmp.b >> tmp.c >> tmp.d >> tmp.e >> tmp.f >> tmp.g >> tmp.h >> tmp.i >> tmp.j >> tmp.k >> tmp.l)
    records.push_back(tmp);
    if (file.bad()) {
        cout << "I/O error\n";
        return 1;
    }
    if (!file.eof()) {
        cout << "Invalid data\n";
        return 1;
}
cout << tmp.name  << endl;
return 0;
}

Пример txt файла на всякий случай:

Gdansk -2.5 -2.4 0.9 5.4 10.3 14.5 16.2 15.6 12.1 7.9 3.1 -0.5

Gdynia -1.7 -2 0.9 5.2 10 14.5 16.8 16.4 12.8 8.3 3.7 0.5

Warszawa -3.5 -2.7 1.5 7.9 13.3 16.8 18.2 17.4 13.3 8.5 3.1 -1.1

NowyJork -0.6 0.5 4.9 10.6 16.5 21.5 24.5 23.8 19.5 13.5 7.9 2.2

Bangkok 25.3 25.3 25.6 25.9 25.8 25.3 24.8 25.2 26.1 26.6 26.3 25.6

Answer 1

Потому что вы выводите только его :)

while (file >> .....)
{
    records.push_back(tmp);
    cout << tmp.name  << endl;
}

и будет вам счастье... :)

Answer 2

Замените строку с cout на

for (auto c : records) std::cout << c.name  << std::endl;
READ ALSO
Сортировка пользовательского класса в QVector

Сортировка пользовательского класса в QVector

Как сделать сортировку вектора моего класса QVector <DbTrade>?

214
Зависает чтение InputStream

Зависает чтение InputStream

Пытаюсь прочитать длинный InputStream (с ~180к+ символов) Этим способом зависает в while:

182
Динамическое создание массивов

Динамическое создание массивов

Написал функции для создания и инициализации одномерного массива и матрицыКак в main вывести оба массива в консоль?

207
recursive fill sudoku java

recursive fill sudoku java

getSupposedNums(i,j) возвращает массив возможных вариантов для ячейки i,j, работает корректно

201