|
0 / 0 / 0
Регистрация: 24.11.2015
Сообщений: 20
|
|
Работа с файловыми потоками01.12.2015, 12:42. Показов 864. Ответов 1
Метки нет (Все метки)
Получилось по заданию примерно как то так:Постановка задачи
Входные данные: текстовый файл, содержащий значения средних температур за день для конкретного месяца (например, файл температур за октябрь должен содержать 31 значение). Выходные данные: текстовый файл, содержащий результаты обработки: среднюю температуру за месяц, максимальную и минимальную температуру за месяц. Анализ задачи: 1. Прочитать из исходного фала значения температур в массив. 2. Найти среднюю температуру за месяц. 3. Найти максимальную температуру 4. Найти минимальную температуру 5. Записать в файл значения, вычисленные в пунктах 2, 3 и 4, в отформатированном виде. Каждый этап решения задачи реализовать в виде функции. #include <iostream> #include <fstream> #include <iomanip> using std::fstream; using std::cout; using std::endl; /* run this program using the console pauser or add your own getch, system("pause") or input loop */ int count_days = 0; //may be 30 31 28 29 int t[32]; //31 day + 1 reserved for EOF #define INPUT_FILE_NAME "./input.txt" #define OUTPUT_FILE_NAME "./output.txt" //======================================== ============= void get_min(int *mint) { int i; //temporary variable *mint = t[0]; //start value for(i=1;i<count_days;i++){ if(*mint > t[i]) *mint = t[i]; } } //======================================== ============= void get_max(int *maxt) { int i; //temporary variable *maxt = t[0]; //start value for(i=1;i<count_days;i++){ if(*maxt < t[i]) *maxt = t[i]; } } //======================================== ============= void get_median(int *median) { int i; //temporary variable float m = 0.0; for(i=0;i<count_days;i++){ //sum for median calculations m += (float)t[i]; } m = m / count_days; *median = (int)m; } //======================================== ============= int open_and_read_values(void) { fstream inp; //input file stream //open file and check success inp.open(INPUT_FILE_NAME, fstream::in); if(!inp.is_open()) { cout<< "Cant open input file!\n"; return -1; } //read array of numbers from file //NUMBER\r\n.. while(1) { //check for no more than 31 days in file, ignore remaining if(count_days == 32 ) { cout << "Warning! more than 31 values in file - ignored!\n"; break; } inp >> t[count_days]; if(inp.eof() || inp.fail() || inp.bad()) break; //if error or end of file - exit cycle count_days++; } cout << "readed " << count_days << " values from file\n"; //close input inp.close(); //check has any days if(count_days==0) { cout << "No values in input file!\n"; return -1; } return 0; } //======================================== ============= int open_and_write_values(int m, int ma, int mi) { fstream outp; //input file stream //open file and check success outp.open(OUTPUT_FILE_NAME, fstream::out | fstream::trunc); //remove all file contens if(!outp.is_open()) { cout<< "Cant open output file!\n"; return -1; } //out median outp << std::showpos; //+ in positive deciman number outp << std::setprecision(5); //5 digits after comma outp << "Median value: "<< m << endl; //out max outp << "Max value: "<< ma << endl; //out min outp << "Min value: "<< mi << endl; //close output outp.close(); return 0; } //======================================== ============= int main(int argc, char** argv) { int median; int max_temp; int min_temp; cout << "BEGIN\n"; //1 if(open_and_read_values()) return -1; //2 get_median(&median); //3 get_max(&max_temp); //4 get_min(&min_temp); //5 if(open_and_write_values(median, max_temp, min_temp)) return -1; cout << "OK\n"; return 0; } Но одна проблема когда компилируешь ошибок нет.А когда выполняешь пишет так:BEGIN.Cant open input file!
0
|
|
| 01.12.2015, 12:42 | |
|
Ответы с готовыми решениями:
1
Работа с файловыми потоками Работа с файловыми потоками в С++.
|
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 01.12.2015, 13:25 | |
|
Ну путь значит не верный. Укажи полный.
0
|
|
| 01.12.2015, 13:25 | |
|
Помогаю со студенческими работами здесь
2
Работа с файловыми потоками. Выполнить проверку в готовом коде на верхний регистр Работа с потоками Работа с потоками Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3.
Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|