Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
xpressforze
5 / 3 / 2
Регистрация: 25.12.2013
Сообщений: 56
1

Считать из файла в массив без делиметра

26.10.2015, 16:30. Просмотров 250. Ответов 13
Метки нет (Все метки)

Есть файл с содержимым 1|2|3|4|5. Нужно считать из него эти числа и записать в одномерный массив, соответственно избегать "|". Пока сделал только просто вывод файла
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <fstream>
#include <iostream>
using namespace std;
 
int main(int argc, char* argv[])
{
    char buff[50]; 
    ifstream fin("D:\\tmp.txt");
    fin >> buff;
    cout << buff << endl; 
    fin.close(); 
    system("pause");
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.10.2015, 16:30
Ответы с готовыми решениями:

Как считать информацию с файла без расширения?
Имеется файл, с него надо считать числа. Сам файл без расширения. Буду очень...

Как считать матрицу из файла без указания размерности?
Как считать матрицу из файла без указания размерности?

Считать файл в массив без лишних символов
здравствуйте. нужна правильная реализация задачи: на вход подается файл,...

Нужно записать массив в файл, а потом из этого файла считать этот же массив
Помогите, пожалуйста, никогда с файлами делов не имела. Нужно записать массив...

Считать массив А с файла a.txt. после чего сформировать массив С в котором все отрицательные элементы с масси
Помогите написать программу на C++. Изучала этот язык меньше пол года, пока...

13
Тамика
Котовчанин
919 / 463 / 195
Регистрация: 16.02.2010
Сообщений: 3,267
Записей в блоге: 32
26.10.2015, 16:31 2
xpressforze, проходите по строке и выбираете всё, что не "|".
0
Kerry_Jr
Эксперт PHP
2210 / 2006 / 940
Регистрация: 14.05.2014
Сообщений: 5,869
Записей в блоге: 1
Завершенные тесты: 5
26.10.2015, 16:34 3
xpressforze, гляньте в сторону strtok и atoi
1
xpressforze
5 / 3 / 2
Регистрация: 25.12.2013
Сообщений: 56
26.10.2015, 16:42  [ТС] 4
Не очень понимаю как их использовать, мне бы пример как раз таки на этой задачке.
0
daslex
1291 / 535 / 177
Регистрация: 02.08.2011
Сообщений: 2,756
26.10.2015, 16:43 5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <fstream>
#include <iostream>
using namespace std;
 
int main(int argc, char* argv[])
{
    int buff[50];
    int count = 0;
    ifstream fin("D:\\tmp.txt");
    while ( (fin >> buff[count++]) && (!fin.eof())) {
        if (fin) fin.ignore();
    }
    
    for (int i = 0; i < count; i++) cout << buff[i] << "  \n";
    system("pause");
    return 0;
}
0
xpressforze
5 / 3 / 2
Регистрация: 25.12.2013
Сообщений: 56
26.10.2015, 17:03  [ТС] 6
daslex, Спасибо. Не понял только почему в выводе в конце странное выражение)
Кликните здесь для просмотра всего текста
Считать из файла в массив без делиметра
0
nmcf
6277 / 5578 / 2539
Регистрация: 14.04.2014
Сообщений: 23,479
26.10.2015, 17:16 7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <fstream>
#include <iostream>
#include <cstdlib>
using namespace std;
 
int main(int argc, char* argv[])
{
    int buff[50];
    int count = 0;
    ifstream fin("D:\\tmp.txt");
    while (true)
    {
        fin >> buff[count];
        if (fin.fail()) break;
        ++count;
        fin.get();
    }
    
    for (int i = 0; i < count; ++i) cout << buff[i] << "  \n";
 
    system("pause");
}
0
daslex
1291 / 535 / 177
Регистрация: 02.08.2011
Сообщений: 2,756
26.10.2015, 17:22 8
Цитата Сообщение от xpressforze Посмотреть сообщение
Не понял только почему в выводе в конце странное выражение)
И так тоже?
C++
1
2
3
4
while ((fin >> buff[count++])) {
        if (fin.eof()) break;
        if (fin) fin.ignore();
    }
0
nmcf
6277 / 5578 / 2539
Регистрация: 14.04.2014
Сообщений: 23,479
26.10.2015, 17:24 9
daslex, у тебя count увеличится не зависимо от того, было ли что-то получено из потока.
Смотри мой вариант.
1
daslex
1291 / 535 / 177
Регистрация: 02.08.2011
Сообщений: 2,756
26.10.2015, 18:24 10
del
0
xpressforze
5 / 3 / 2
Регистрация: 25.12.2013
Сообщений: 56
26.10.2015, 18:56  [ТС] 11
Как можно не используя Ifstream get все это реализовать как бы собственной функцией?
0
nmcf
6277 / 5578 / 2539
Регистрация: 14.04.2014
Сообщений: 23,479
26.10.2015, 19:00 12
Чем плох ifstream?
0
xpressforze
5 / 3 / 2
Регистрация: 25.12.2013
Сообщений: 56
27.10.2015, 15:04  [ТС] 13
nmcf, Ну для опыта)
0
nmcf
6277 / 5578 / 2539
Регистрация: 14.04.2014
Сообщений: 23,479
27.10.2015, 15:14 14
Опыта чего?
Можно считать строку и затем в цикле искать позицию символа '|' и выделять подстроку.
Можно читать из файла посимвольно в строку, пока не встретится '|', после чего преобразовывать и повторять с начала.
0
27.10.2015, 15:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.10.2015, 15:14

Считать с файла в массив
Подскажите, как считать посимвольно из файла в двумерный массив через fscanf?...

Считать из файла в массив
Добрый день форумчани, у меня маленькое недопонимание. В смысле я не могу...

Считать массив А(n) из файла
Колокол. Считать массив А(n) из файла. В массиве наименьший элемент поместить...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

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