Форум программистов, компьютерный форум CyberForum.ru

Как считать матрицу 3*3 из файла если он там задан неправильно - C++

Восстановить пароль Регистрация
 
zhurbikk
4 / 4 / 0
Регистрация: 14.11.2012
Сообщений: 38
14.11.2012, 21:12     Как считать матрицу 3*3 из файла если он там задан неправильно #1
как считать матрицу 3*3 из файла если он там задан неправильно
например в файле
4 5 6 7 8
1 2 3 4
9 8 7
а должно считать
4 5 6
1 2 3
9 8 7
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
14.11.2012, 21:25     Как считать матрицу 3*3 из файла если он там задан неправильно #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <fstream>
#include <limits>
 
 
int main() {
   std::size_t const n = 3;
   int matrix[n][n];
 
   std::ifstream ifs("filename");
 
   for (std::size_t i = 0; i != n; ++i) {
      for (std::size_t j = 0; j != n; ++j ) {
         ifs >> matrix[i][j];
      }
      ifs.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
   }
}
zhurbikk
4 / 4 / 0
Регистрация: 14.11.2012
Сообщений: 38
14.11.2012, 21:31  [ТС]     Как считать матрицу 3*3 из файла если он там задан неправильно #3
а что делает ignore?
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
14.11.2012, 21:44     Как считать матрицу 3*3 из файла если он там задан неправильно #4
Цитата Сообщение от zhurbikk Посмотреть сообщение
а что делает ignore?
Здесь - читает из потока до перевода строки.
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
14.11.2012, 21:53     Как считать матрицу 3*3 из файла если он там задан неправильно #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
#include <vector>
#include <iterator>
#include <iomanip>
 
int main()
{
    std::ifstream ifs("in.txt");
    if(ifs.is_open())
    {
        std::string s;
        std::vector<std::vector<int> > v;
        std::stringstream ss;
        while(std::getline(ifs, s))
        {
            ss.str(s);
            v.emplace_back((std::istream_iterator<int>(ss)), std::istream_iterator<int>());
            ss.clear();
            ss.str("");
        }
        std::vector<int>::size_type vsize = v.size();
        for(std::vector<std::vector<int> >::iterator ib = v.begin(), ie = v.end(); ib != ie; ++ib)
        {
            ib->resize(vsize);
            for(std::vector<int>::const_iterator cib = ib->cbegin(), cie = ib->cend(); cib != cie; ++cib)
            {
                std::cout << std::setw(5) << std::left << *cib;
            }
            std::cout << std::endl;
        }
        ifs.close();
    }
    else
        std::cerr << "unable to open file" << std::endl;
}
zhurbikk
4 / 4 / 0
Регистрация: 14.11.2012
Сообщений: 38
14.11.2012, 21:55  [ТС]     Как считать матрицу 3*3 из файла если он там задан неправильно #6
а что нужно заменить чтоб считало n*n (елементов достаточно)
Yandex
Объявления
14.11.2012, 21:55     Как считать матрицу 3*3 из файла если он там задан неправильно
Ответ Создать тему
Опции темы

Текущее время: 14:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru