Добавление разреженных матриц

Donovan Preston спросил: 03 февраля 2018 в 10:10 в: c++

Для нашего класса программирования мы должны добавить две разреженные матрицы вместе, читая 2 входных файла. Мы должны использовать структуры для хранения значений из матриц и динамически выделять размер для размера элемента. Я понимаю логику выделения памяти для размера матрицы, а затем считывает каждую строку входного матричного файла, чтобы найти строку (int r;), column (int c;) и это конкретное значение (двойное значение) > Я понимаю, что значения будут добавляться только в том случае, если они имеют одинаковое расположение в матрице. Тем не менее, я боюсь, как подойти к этому с точки зрения синтаксиса. Вот что я до сих пор и пример входного файла.

#include "stdafx.h"
#include <iostream>
#include <string>
#include <fstream>using namespace std;int size1 = 100;
int size2 = 100;struct element
{
    int r;
    int c;
    double value;
};int main()
{
    ifstream inputfile;
    inputfile.open("TextFile1.txt");
    string line;    char ch;
    int i = 0;
    int r; 
    int c;
    double value;    for (i = 0; i <= 0; i++)
    {
        getline(inputfile, line);
        inputfile >> r >> c;    }
    size1 = (r + 1) * (c + 1);    while (getline(inputfile, line))
    {
        inputfile >> r >> c >> value;
        cout << r << c << value << endl;
    }
    element m1[10];
    {
        m1[0].r = r;
        m1[1].c = c;
        m1[2].value = value;
    }
    cout << m1[0].r << m1[1].c << m1[2].value << endl;system("pause");
return 0;

}

Входной файл:

#Matrix A
2 2
1 1 2.2
2 2 3

Пока это только сохраняет int r, int c и двойное значение для последней строки матрицы, и я смущен, почему его пропуск по первой строке (1 1 2,2)? Мне также трудно понять, как создать отдельную структуру для каждой строки в файле матрицы. Не делая для меня работу, может ли кто-нибудь дать несколько советов о том, как мне следует хранить информацию из входного файла и как это перевести на то, чтобы найти значения в одном месте для добавления?

Обновление: у меня все еще есть проблемы из-за цикла for. То, что я пытался сделать, это пропустить строку, содержащую "#", но код не будет работать, если скажет, что "#" находится где-нибудь еще в коде. (Для примера ввода, данного нам, есть некоторые с "#", случайно встроенные в код, и мы должны найти способ пропустить эту строку, если она есть)

0 ответов