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

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

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.03.2015, 17:13   #1
FrostBelarus
Пользователь
 
Регистрация: 10.11.2014
Сообщений: 23
По умолчанию Работа с файлами в С(IDE - Visual studio )

Доброго времени суток. Нужна помощь вот в таком деле:
Дан файл вещественных чисел, содержащий элементы квадратной матрицы (по строкам), причем начальный элемент файла содержит значение количества столбцов матрицы. Создать новый файл той же структуры, содержащий матрицу, транспонированную к исходной.
Вообще мы учим С++, но в данной работе необходимо использовать функции языка С. Я попробовал сам,получилось довольно громоздко. Также не сделал запись в файл. Прошу помочь с кодом и(если возможно) с оптимизацией моего варианта.Заранее спасибо
Код:
#include <iostream> 
#include <stdio.h>
int main(void)
{
	setlocale(LC_CTYPE, "Russian");
	using namespace std;
	char mass_str1[6], mass_str2[6],mass_str3[6];// массивы для строк матрицы
	int i, k,M[3][3];
	FILE * fr;
	fr = fopen("D:\\doc1.txt", "rt"); 
    fgets(mass_str1,5, fr);//запись строк в массивы
	fgets(mass_str2, 5, fr);
	fgets(mass_str3, 5, fr);
	cout << mass_str1;//для проверки правильно ли считалась и записалась информация
	cout << mass_str2;
	cout << mass_str3;
	k = 0;
	for (i = 0; i < 3; i++)
	{
			M[i][k] = mass_str1[i]-'0';//преобразование кода числа в само число
			cout <<endl<< "i= " << i << " k= " << k << " Mik= " << M[i][k]<<" mas= "<<mass_str1 ;//также проверка
	}
	k = 1;
	for (i = 0; i < 3; i++)//stroki
	{
			M[i][k] = mass_str2[i]-'0';
			cout << endl << "i= " << i << " k= " << k << " Mik= " << M[i][k];
	}
	k = 2;
	for (i = 0; i < 3; i++)
	{
			M[i][k] = mass_str3[i]-'0';
			cout << endl << "i= " << i << " k= " << k << " Mik= " << M[i][k];
	}
	cout << endl;
	for (i = 0; i < 3; i++)
	{
		cout << endl;
		for (k = 0;k<3;k++)
		{
			cout << " " << M[i][k];
		}
	}
	fclose(fr);
	cout << endl;
	FILE *fw;
	fw = fopen("D:\\doc2.txt", "wt");
	//недописанный код
}
FrostBelarus вне форума Ответить с цитированием
Старый 02.03.2015, 17:46   #2
Jurijus123
Заблокирован
 
Регистрация: 12.11.2014
Сообщений: 120
По умолчанию

вот укороченый вореант здесь можно кое-что укоротить:

Код:
 k=0; 
       while(k!=2)
       {
           
	for (i = 0; i < 3; i++)
               {
	      M[i][k] = mass_str1[i]-'0';//преобразование кода числа в само число
	      cout <<endl<< "i= " << i << " k= " << k << " Mik= " << M[i][k]<<" mas= "<<mass_str1 ;
              cout << endl;
              k++;

	        }
           }

Последний раз редактировалось Jurijus123; 02.03.2015 в 17:57.
Jurijus123 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа с файлами и строками С++ Visual Studio 2013 mystafa23 Общие вопросы C/C++ 0 14.10.2014 22:46
Ошибка IDE MS Visual Studio 2010 Ultimate SP1 FaTaL Общие вопросы .NET 2 28.02.2012 21:06
Работа с файлами С++ ( Microsoft Visual Studio 2008 ) Alexei1337 Помощь студентам 1 14.01.2012 15:33
Оптимизация IDE - Visual Studio 2010! Blourid Софт 3 31.12.2010 07:04
С++ в M$ Visual Studio: Работа с файлами mmx358 Visual C++ 4 02.02.2010 21:25