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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
inham130
0 / 0 / 0
Регистрация: 23.11.2011
Сообщений: 35
#1

Считывание из файла чисел, разделенных пробелом, в массив - C++

24.03.2014, 22:09. Просмотров 1692. Ответов 4
Метки нет (Все метки)

В текстовом файле массив целых чисел записанных через пробел. Затем переход на новую строку и еще один массив через пробел. Пытаюсь считать эти 2 массива, но считывается только первое число. Все числа трехзначные. Подскажите пожалуйста в чем проблема.
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
39
40
41
char ch[3], l = 'a';
            int i = 0, j = 0, a=0, b = 0;
            ifstream f;
            f.open("D://2d.txt", fstream::in);
 
            if(f)
            {           
                while (l != '\n')
                {
                    f >> l;
                    if(isdigit(l))
                    {
                        ch[j] = l;
                        j++;
                        if(j == 3)
                        {
                            j = 0;
                            x[i] = atoi(ch);
                            i++;
                        }
                    }
                }
                i = 0;
                while (!f.eof())
                {
                    f >> l;
                    if(isdigit(l))
                    {
                        ch[j] = l;
                        j++;
                        if(j == 3)
                        {
                            j = 0;
                            y[i] = atoi(ch);
                            i++;
                        }
                    }
                }
                f.close();
                int n = i;
            }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2014, 22:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Считывание из файла чисел, разделенных пробелом, в массив (C++):

Задан файл из целых чисел со знаком, разделенных пробелом. Произвести чтение этих чисел в обратном порядке, не читая предыдущие. - C++
Есть множество задач анализа данных, записанных в файле, которые можно решить за "линию", не обязательно, сохраняя данные в оперативную...

Напечатать в одну строку пятьдесят первых натуральных чисел разделенных запятой с пробелом - C++
Напечатать в одну строку пятьдесят первых натуральных чисел разделенных запятой с пробелом.

Считывание чисел из файла в массив - C++
Делая расчетку, запнулся на считывании данных :cry: Имеется файл вида n m 2 3 2 5 1 5 Например: 3 3

Считывание чисел из файла и запись их в массив - C++
Имеется файл txt со следующей строкой: ght# 1, nkat= 8, str= 1.00000, lmv= 0.5000 0.0001 0.0001 (reduced coord) ght# 2, nkat= ...

Считывание из файла массив целых чисел и действия над ним - C++
помогите написать программу. Из файла (имя файла вводится с клавиатуры) считывается массив целых чисел. Размер массива заранее...

Подсчет колличества слов разделенных пробелом и пробелов в файле - C++
Здраствуйте. Нужно сделать подсчет колличества слов разделенных пробелом, а также количество пробелов в открываемом бинарно файле. Проблема...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
alsav22
5417 / 4813 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.03.2014, 22:57 #2
C++
1
2
3
4
    while (l != '\n')
    {
        f >> l;
        ...
При таком чтении '\n' никогда не считается (оператор >> пропускает пробельные символы).

Добавлено через 2 минуты
Можно так:
C++
1
while (f.peek() != '\n')
Vourhey
Почетный модератор
6478 / 2253 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
24.03.2014, 23:33 #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <algorithm>
#include <fstream>
#include <string>
#include <sstream>
#include <iterator>
 
int main()
{
    std::ifstream in("input");
    std::string line;
    std::vector< std::vector<int> > arrays;
    std::istringstream str;
    while(std::getline(in, line))
    {
        str.str(line), str.clear();
        arrays.push_back(std::vector<int>{});
        std::copy(std::istream_iterator<int>(str), std::istream_iterator<int>(), std::back_inserter(arrays.back()));
    }
    in.close();
    return 0;
}
nobless1368
14 / 14 / 1
Регистрация: 04.06.2012
Сообщений: 124
Записей в блоге: 1
11.06.2015, 15:37 #4
а как потом сделать вывод в cout? и я не очень понимаю, зачем здесь итератор
daslex
11.06.2015, 16:07     Считывание из файла чисел, разделенных пробелом, в массив
  #5

Не по теме:

трехзначные положительные?



Не по теме:

и вообще какой массив должен получиться?
массив из двух строк или массив из двух массивов, которые хранят эти числа.

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.06.2015, 16:07
Привет! Вот еще темы с ответами:

пытаюсь сделать реализацию через считывание из файла кол-ва чисел, i,но незнаю как сделать реализацию из файла в массив и сортировки. - C++
В файле input.txt находится неизвестное количество вещественных чисел в интервале . Выцапарать их оттуда, отсортировать по убыванию модуля...

В строке, содержащей несколько слов, разделенных пробелом, переставить слова в обратной последовательности - C++
Задание 1 В строке, содержащей несколько слов, разделенных пробелом, переставить слова в обратной последовательности. Входные...

Считывание чисел из файла в массив и ошибка: "Invalid allocation size: 4294967295 byte" - C++
Всем привет. Есть два вопроса. 1. Нужно считать из txt файла числа в массив столбцов и строк. Код вроде правильный, но пишет...

Чтение чисел с плавающей точкой из файла, разделенных запятыми в переменные - C++
Здравствуйте! У меня есть файл &quot;file.dat&quot; вида 2 82.7957421541214,55.0893564395402 82.7997922897339,55.0893564395402 ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
11.06.2015, 16:07
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru