Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.05.2018, 01:42   #1
Лллл0
Новичок
Джуниор
 
Регистрация: 15.05.2018
Сообщений: 2
По умолчанию [РЕШЕНО][C++] работа с файлами

Помогите пожалуйста, не могу разобраться!
Мне нужно что бы в указынный файл (sr.arifm.txt) добавлялись в конец результаты операций, столько раз сколько захочет пользователь, но у меня почему то в указанную попку добавляется только результат первого измерения, а остальные падают в пустоту. Остальное все работает. Пробовала заменить "a" на "a+", но это ничего не дало. Помогите, уже не знаю что делать....
Вот сам код, сильно не критикуйте я новичек)
Код:
#include <iostream>
#include<cstdio>
#include <fstream>
using namespace std;

int main()
{
setlocale(LC_ALL, "Russian");
int i,f=1,a,j;
float sum, x[3][6];
FILE *fp=fopen("sr.arifm.txt","a");//файл для сред.арифм. знач.
FILE *in=fopen("file.txt", "r");//файл чтения
FILE *out=fopen("matriza.txt", "w");//файл записи


cout<<"если заполнение матрицы с клавиатуры -> 1"<<endl<<"если заполнение матрицы с файла ->2"<<endl;
cin>>a;

//заполнение матрицы с клавиатуры
if (a==1)
{for(i=0;i<3;i++)
{cout<<"заполнение "<<f<<" строки"<<endl;
    for(j=0;j<6;j++)
        {cout<<"x["<<i<<"]["<<j<<"]=";
cin>>x[i][j]; cout<<endl;}
f=f+1;
}
//вывод матрицы
cout<<"Матрица:"<<endl;
for(i=0;i<3;i++)
{for(j=0;j<6;j++)
cout<<x[i][j]<<"\t";
cout<<endl;
}}

//заполнение матрицы из файла "file.txt"
else{
if (a==2)
{

    for(i=0;i<3;i++)
    {
     for(j=0;j<6;j++)
      {
       fscanf(in,"%f",&x[i][j]);
      }
    }
//вывод матрицы
cout<<"Матрица:"<<endl;
for(i=0;i<3;i++)
{for(j=0;j<6;j++)
cout<<x[i][j]<<"\t";
cout<<endl;
cout<<endl;}
}

//проверка на ошибку при вводе
else {cout<<"Ошибка!"; return 32;}}


//бесконечный цикл для подсчета среднего арифметического значение указанного столбца
while(1)
{cout<<"Введите номер столбца для подсчета среднего арифметического значения"<<endl<<"если хотите выйти из програмы введите 0"<<endl;
cout<<"->";
cin>>a; cout<<endl;

//условие для выхода из цикла
if (a==0)
    break;

//проверка на ошибку при вводе
if ((a<1)||(a>6)) cout<<"Ошибка! ";
//подсчет среднего арифметического значения
else{
sum=0;
for (i=0;i<3;i++)
sum=sum+x[i][a-1];
sum=sum/3;
//запись ср.значения в файл "sr.arifm.txt"
fprintf(fp,"%d\t%f",a,sum);
fprintf(fp,"\n");
fclose(fp);
cout<<sum<<endl;
}
}

//запись массива в файл "matriza.txt" в виде матрицы
for(i=0;i<3;i++)
{for(j=0;j<6;j++) {fprintf(out,"%f\t\t",x[i][j]);}
fprintf(out,"\n");
}

//закрытие файлов
fclose(in);
fclose(out);

return 0;}

Последний раз редактировалось Вадим Мошев; 17.05.2018 в 16:39.
Лллл0 вне форума Ответить с цитированием
Старый 15.05.2018, 06:46   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Ну так вы файл не закрывайте после первой записи...
p51x вне форума Ответить с цитированием
Старый 15.05.2018, 08:02   #3
Лллл0
Новичок
Джуниор
 
Регистрация: 15.05.2018
Сообщений: 2
По умолчанию

Я поняла. Спасибо Вам большое!)

Последний раз редактировалось Лллл0; 15.05.2018 в 08:16.
Лллл0 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Лабораторная работа(очень простая) Структуры, работа с файлами yurda Фриланс 2 11.06.2016 08:44
Работа с файлами - C Max00766 Общие вопросы C/C++ 9 24.11.2015 14:33
Работа с файлами: запись, добавление, чтение (найти ошибку в коде) / C для начинающих Надо создать программу для работы с файлами Konlor Общие вопросы C/C++ 2 18.05.2014 12:37
Работа с файлами Ipumacool Общие вопросы C/C++ 5 31.10.2012 21:48
[РЕШЕНО][Assembler] Правильно ли решено уравнение? fuzo Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 29.12.2010 04:12