Все мои выходные данные равны 0, поэтому ни одна из считываемых данных не сохраняется, и я не знаю, почему. Необходимы зC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Гость
 Все мои выходные данные равны 0, поэтому ни одна из считываемых данных не сохраняется, и я не знаю, почему. Необходимы з

Сообщение Гость »


Ниже я предоставил желаемый код out, main.cpp, Support.cpp и Support.h. Я в основном пытаюсь извлечь данные о погоде, а затем вывести их. Я изменил предыдущий код, который я написал, который использовал векторы, чтобы теперь вместо этого использовать одинарные связанные списки. Мой векторный код выдавал неправильные данные, но в большинстве случаев он выдавал данные, которые не были нулями. Теперь выходные данные — все нули, кроме одного месяца. Строки в файле main.cpp с комментарием «удалить после завершения отладки» следует закомментировать при запуске с использованием командной строки и конвейерной обработки в файле csv. Я использую их только тогда, когда использую отладчик VSCode и прохожу программу. Это самый простой способ передать файл csv без редактирования файла json. Любые ссылки на Prog1a относятся к предыдущему коду, в котором вместо списков использовались векторы. Любая помощь очень ценится. Я думаю, что проблема связана с моей функцией Insert(), определенной в Support.cpp, но я не уверен. Я пытался изменить это, но все, что происходит, — это отсутствие вывода или вывод со всеми нулями, за исключением одного месяца нужного города.

Желаемый результат

unix> ./main Ноксвилл < Weather_TN.csv ------------------------------------------ Ноксвилл, Теннесси (TYS) ------------------------------------------ Янв: 4,21 0,70 1,45 0,00 : 37 46 27 фев: 7.12 1.78 3.09 0.14 : 41 47 29 Март: 2,32 0,58 1,13 0,28 : 54 63 43 Апр: 1,78 0,44 0,71 0,26 : 58 67 50 Май: 4,04 0,81 1,42 0,19 : 67 72 63 Июнь: 4.17 1.04 3.11 0.00 : 77 80 74 Июль: 4,80 0,96 3,71 0,00 : 81 84 80 Август: 2,33 0,58 1,00 0,10 : 81 83 80 Сен: 0,91 0,23 0,56 0,00 : 78 79 77 Окт: 0,18 0,04 0,14 0,00 : 65 68 64 Ноябрь: 0,27 0,07 0,16 0,00 : 53 64 46 Дек: 5,51 1,38 2,28 0,64 : 41 43 41 main.cpp

#include #include #include использование пространства имен std; #include "Support.h" #include "Support.cpp" void extract_values(строка &текст, местоположение &n_station, данные &n_data) { //**См. Prog1a for (int i = 0; i < text.size(); i++) { если (текст == ' ') { текст[я] = '_'; } если (текст == ',') { текст[я] = ''; } } std::stringstream ss(текст); сс >> n_data.month >> n_station.city >> n_station.state >> n_station.geocode >> n_data.precip >> n_data.temp; } int main(int argc, char *argv[]) { freopen("weather_TN.csv", "r", stdin); //УДАЛИТЬ ПОСЛЕ ЗАВЕРШЕНИЯ ОТЛАДКИ if (argc != 1 && argc != 2) { cerr next; заголовок->следующий = заголовок->следующий->следующий; удалить температуру; } удалить голову; } void list::insert(const location &loc, const data &dat) { // Реализуем логику вставки списка узел *newNode = новый узел (loc); newNode->следующий = nullptr; узел *текущий = голова; // Обрабатываем случай, когда список изначально пуст if (текущий->следующий == nullptr || loc < текущий->следующий->станция) { новыйузел->следующий = текущий->следующий; текущий-> следующий = новый узел; // Обновляем данные о погоде для новой станции новыйУзел->N[dat.month - 1] = 1; newNode->total_precip[dat.month - 1] = dat.precip; newNode->max_precip[dat.month - 1] = dat.precip; newNode->min_precip[dat.month - 1] = dat.precip; newNode->total_temp[dat.month - 1] = dat.temp; newNode->max_temp[dat.month - 1] = dat.temp; newNode->min_temp[dat.month - 1] = dat.temp; возвращаться; } while (текущий->следующий != nullptr) { if (loc следующая->станция) { новыйузел->следующий = текущий->следующий; текущий-> следующий = новый узел; // Обновляем данные о погоде для новой станции новыйУзел->N[dat.month - 1] = 1; newNode->total_precip[dat.month - 1] = dat.precip; newNode->max_precip[dat.month - 1] = dat.precip; newNode->min_precip[dat.month - 1] = dat.precip; newNode->total_temp[dat.month - 1] = dat.temp; newNode->max_temp[dat.month - 1] = dat.temp; newNode->min_temp[dat.month - 1] = dat.temp; возвращаться; } текущий = текущий-> следующий; } } /* void list::insert(const location &loc, const data &dat) { // Реализуем логику вставки списка узел *newNode = новый узел (loc); newNode->следующий = nullptr; узел *текущий = голова; while (текущий->следующий != nullptr) { if (loc следующая->станция) { новыйузел->следующий = текущий->следующий; текущий-> следующий = новый узел; возвращаться; } текущий = текущий-> следующий; } // Если станцию ​​нужно вставить в конец //текущий->следующий = newNode; } */ void list::node::print_station() { std::string header = "------------------------------------------" ; std::string location_info = Station.city + ", " + Station.state + " (" + Station.geocode + ")"; printf("%s\n%s\n%s\n", header.c_str(), location_info.c_str(), header.c_str()); } недействительный список::node::print_data() { std::vectormonths = {"Январь", "Фев", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", " Октябрь", "Ноябрь", "Декабрь"}; для (int я = 0; я следующий; while (текущий != nullptr) { // Проверяем, совпадает ли target_location или target_location имеет значение NULL (распечатать все) if (target_location == nullptr || current->station.geocode == target_location) { текущий->print_station(); текущий->print_data(); } текущий = текущий-> следующий; } } // Определить оператор «меньше» для объектов местоположения bool location::operator
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ, комментарий, отзыв

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Pydantic не может сериализовать данные FastAPI
    Гость » » в форуме Python
    0 Ответы
    1 Просмотры
    Последнее сообщение Гость
  • Импортируйте данные 1M, используя laravel-excel и очередь.
    Гость » » в форуме Php
    0 Ответы
    0 Просмотры
    Последнее сообщение Гость
  • Ошибка присвоения нескольких файлов C++: ссылка на «данные» неоднозначна
    Гость » » в форуме C++
    0 Ответы
    1 Просмотры
    Последнее сообщение Гость
  • Лучший способ ссылаться на данные электронной таблицы по имени заголовка в Python?
    Гость » » в форуме Python
    0 Ответы
    1 Просмотры
    Последнее сообщение Гость
  • Как объединить два фрейма данных
    Гость » » в форуме Python
    0 Ответы
    2 Просмотры
    Последнее сообщение Гость

Вернуться в «C++»