Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 27.07.2016
Сообщений: 6
1

Файл: Из текста файла считать только цифры

08.08.2016, 20:20. Просмотров 1613. Ответов 5
Метки нет (Все метки)

В общем мне надо чтобы из текста файла считывались только числа, например из предложения
Today is 8th of August. Temperature is 28 degrees. считалось 8 и 28, но
C++
1
2
3
4
5
ifstream fin("input.cpp"); 
int a;
while (fin>>a)
    {...
    }
вот так не получается. Можно ли как-нибудь это обойти?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.08.2016, 20:20
Ответы с готовыми решениями:

С файла считать цифры a и b в каждой строчки и вывести их сумму в другой файл
Нужно с файла считать цифры a и b в каждой строчки и вывести их сумму в другой файл. При чем...

Считать текст из файла, вывести в другой файл и на экран только строки содержащие заданный с клавиатуры символ
// Написать программу, которая считывает текст из файла и выводит в другой файл // и на экран...

Как считать только цифры из строки?
Здравствуйте! Есть строка с различными символами (например "sd712hpq34"), нужно считать только...

Строки: считать текст из файла и вывести в другой файл и на экран только строки, не содержащие цифр
Написать программу, которая считывает текст из файла и выводит в другой файл и на экран только...

5
Хитрая блондиночка $)
1460 / 974 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
08.08.2016, 20:49 2
По-моему только регулярными выражениями.
0
19 / 29 / 13
Регистрация: 09.02.2016
Сообщений: 230
08.08.2016, 20:54 3
C++
1
2
3
4
5
6
int x; try {
        x = stoi(string_var);
    }
    catch (...) {
        continue;
        }
и запихни в цикл. думаю идею понял
1
Эксперт С++
1584 / 914 / 777
Регистрация: 06.02.2016
Сообщений: 2,399
Записей в блоге: 29
08.08.2016, 21:19 4
Но цифры выводятся по отдельности
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main(){
    ifstream ff;
    ff.open("dd.txt");
    while(!ff.eof()){
        string s;
        getline(ff,s);
        for(size_t i=0; i!=s.length();i++)
        if(isdigit(s[i])){
            cout<<s[i]<<" ";
        }
    }
    ff.close();
    return 0;
}
0
Эксперт С++
8274 / 3850 / 837
Регистрация: 15.11.2014
Сообщений: 8,726
09.08.2016, 00:44 5
http://rextester.com/CAH81544

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
#include <iostream>
#include <string>
#include <regex>
 
std::string find_digit(const std::string& line)
{
    static std::regex e("(\\+|-)?[[:digit:]]+");
    
    std::sregex_token_iterator i(line.begin(), line.end(), e);
    std::sregex_token_iterator end;
    
    std::string result;
    while (i != end)
        result += i->str() + " ",
        ++i;
    
    if(!result.empty())
        result.pop_back();
    return result;
}
 
void unit_test(const char* target, const char* result)
{
    const auto re = find_digit(target);
    
    std::cout 
        <<"[check] '"     << target 
        << "' : result '" << re 
        << "' ---> "      << (re == result? " passed": "failed") 
        << '\n';
}
 
int main ()
{
    unit_test("Today is 8th of August. Temperature is 28 degrees", "8 28");
    unit_test("Today is -8th of August. Temperature is 28 degrees", "-8 28");
    unit_test("Today is -8a-8th of August. Temperature is 28 degrees", "-8 -8 28");
    unit_test("Today is --8a-8th of August. Temperature is 28 degrees", "-8 -8 28");
    unit_test("Today is -+8a-8th of August. Temperature is 28 degrees", "+8 -8 28");
}
1
Эксперт С++
3206 / 1733 / 435
Регистрация: 03.05.2010
Сообщений: 3,867
09.08.2016, 00:53 6
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
#include <iostream>
#include <string>
#include <sstream>
///////////////////////////////////////////////////////////////////////////////
typedef std::string     T_str;
///////////////////////////////////////////////////////////////////////////////
int     main()
{
    std::istringstream  ssin("Today is 8th of August. Temperature is 28 degrees.");
    T_str               word;
 
    while( ssin    >>  word )
    {
        try
        {
            std::cout   <<  std::stoi( word )
                        <<  '\t';
        }
        catch(...)
        {}
    }//while
 
    std::cout   <<  std::endl;
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.08.2016, 00:53

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Считать год (четыре цифры), вывести только две последние
Задание таково: создать класс Date, содержащий три поля типа int: месяц, день и год. Метод класса...

В текстовом файле t записаны буквы латинского алфавита и цифры. Занести в текстовый файл h из текстового файла t только латинские буквы.
В текстовом файле t записаны буквы латинского алфавита и цифры. Занести в текстовый файл h из...

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

Помогите считать цифры из файла в переменные
У меня есть файл в котором записаны значения переменных, например, в таком формате: 700 5 3...


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

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

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