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

Если из файла надо вытащить отдельно цифры и отдельно текст - как? - C++

Восстановить пароль Регистрация
 
Wladius
12 / 7 / 2
Регистрация: 06.01.2013
Сообщений: 127
03.06.2013, 16:10     Если из файла надо вытащить отдельно цифры и отдельно текст - как? #1
Допустим дан файл:

blablabla
1 2 5 4
1 2
lol
12 2
text
12
4 5
9

То есть в какой-то строке может быть 1 слово, а потом цифры в других строках, пока в однйо строке снова не будет слово, можно ли как-то это по-отдельности достать? в char записать слово, потом цифры в int потом снова слово итд

Добавлено через 38 минут
up/
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.06.2013, 16:10     Если из файла надо вытащить отдельно цифры и отдельно текст - как?
Посмотрите здесь:

Напишите программу, которая вводит число из пяти цифр, разделяет число на отдельные цифры и печатает их отдельно друг от друга C++
Файл: Как сделать построчную выборку второго столбца отдельно от первого, и наоборот? C++
написать программу, которая вводит число из 4 цифр, разделяет число на отдельные цифры и печатает их отдельно друг от друга. например если введенное ч C++
C++ Файл: Вывести на экран результаты 3 файлов, которые содержат отдельно каждый букви, цифры, и знаки препинания...
Как создать отдельно список и массив из 20 случайных чисел C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
_THE_f0restw0w
1 / 0 / 0
Регистрация: 03.06.2013
Сообщений: 14
03.06.2013, 16:19     Если из файла надо вытащить отдельно цифры и отдельно текст - как? #2
Цитата Сообщение от Wladius Посмотреть сообщение
Допустим дан файл:

blablabla
1 2 5 4
1 2
lol
12 2
text
12
4 5
9

То есть в какой-то строке может быть 1 слово, а потом цифры в других строках, пока в однйо строке снова не будет слово, можно ли как-то это по-отдельности достать? в char записать слово, потом цифры в int потом снова слово итд

Добавлено через 38 минут
up/
Я думаю тут врятли кто поможет..Оставь такую-же темку в разделе 'C++ для экспертов'
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
03.06.2013, 16:35     Если из файла надо вытащить отдельно цифры и отдельно текст - как? #3
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
#include <iostream>
#include <fstream>
#include <sstream>
#include <vector>
#include <string>
#include <iterator>
#include <stdexcept>
#include <memory>
 
using namespace std;
 
typedef istreambuf_iterator<char> char_in;
 
int main()
{
    string text( char_in(*unique_ptr<ifstream>(new ifstream("file.txt"))),
                        ( char_in() ) );
    istringstream iss(text);
    string chars;
    vector<string> strs;
    vector<int> ints;
 
    while (iss >> chars) {
        try {
            int val = stoi(chars);
            ints.push_back(val);
        } catch(const invalid_argument &ia) {
            strs.push_back(chars);
        };
    }
 
    cout << "words are:\n";
    for (auto &x : strs) cout << x << endl;
    cout << "values are:\n";
    for (auto x : ints) cout << x << endl;
    return 0;
}
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
03.06.2013, 18:17     Если из файла надо вытащить отдельно цифры и отдельно текст - как? #4
В файле:

blab labla
-1 2 5 +4
1 2
lol
+12 2
text
12
4 5
9 23 -45
aa aaa

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
42
43
44
45
46
47
48
49
50
51
52
53
// после каждой строки должен быть '\n'
// первым символом строк с числами должна быть или цифра,
// или '+', или '-', за которым следует цифра
// первым символом строки не с числами не должна быть цифра или '+', или '-' 
 
#include <iostream>
#include <fstream>
#include <cctype>
 
using namespace std;
 
int main()
{
    ifstream fin("1.txt");
    if (!fin.is_open()) cout << "Error!" << endl;
    else
    {
        char str[100];
        int n;
 
        while (!fin.eof())
        {
            if (!isdigit((unsigned char)fin.peek()) && fin.peek() != '+' && fin.peek() != '-')
            {
                fin.getline(str, 100);
                if (fin.eof()) break;
                cout << str << endl;
                
            }
            
            if (isdigit((unsigned char)fin.peek()) || fin.peek() == '+' || fin.peek() == '-')
            {
                while (true)
                {
                    fin >> n;
                    if (fin.eof()) break;
                    if (!fin) 
                    {
                            fin.clear();
                            break;
                    }
                        
                    cout << n << ' ';
                }
                cout << endl;
            }
        }
        fin.close();
    }
    
    system("pause");
    return 0;
}
Миниатюры
Если из файла надо вытащить отдельно цифры и отдельно текст - как?  
Yandex
Объявления
03.06.2013, 18:17     Если из файла надо вытащить отдельно цифры и отдельно текст - как?
Ответ Создать тему
Опции темы

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