Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 05.11.2012
Сообщений: 25

Для тех кто умеет работать с файлами (Вывести на экран только строки, содержащие двузначные числа)

11.12.2012, 23:23. Показов 1835. Ответов 4
Метки нет (Все метки)

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

Добавлено через 1 час 36 минут
Помогите пожалуйста.

Добавлено через 21 час 41 минуту
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.12.2012, 23:23
Ответы с готовыми решениями:

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

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

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

4
интересующийся
311 / 282 / 93
Регистрация: 25.09.2010
Сообщений: 1,056
12.12.2012, 05:13
Звучит, прям как вызов:
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
54
55
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
 
void read_and_print( char *s );
 
int main( int argc, char **argv )
{
    if( argc < 2 ) {
    printf( "Error: enter file name\n" );
    return EXIT_FAILURE;
    }
    FILE *file;
    int i;
    char *line = NULL;
    size_t len = 0;
    ssize_t read;
    
    if( (file = fopen( argv[1], "r")) == NULL ) {
    fprintf( stderr, "Error: couldn't read file %s\n", argv[1] );
    return EXIT_FAILURE;
    }
    
    while( (read = getline( &line, &len, file)) != -1 ) {
    read_and_print( line );
    }
    free( line );
    fclose( file );
    
    return EXIT_SUCCESS;
}
 
void read_and_print( char *s )
{
    char *ps = s;
    int status = 1;
    
    while ( *ps != '\n' && *ps != EOF ) {
    while( isspace(*ps) )
        ++ps;
    if( *ps == '-' || *ps == '+' )
        ++ps;
    if( *ps == '0' )
        ++ps;
    if( isdigit(*ps) && isdigit(*(ps+1)) && isspace(*(ps+2)) )
        ps = ps + 2;
    else {
        status = 0;
        break;
    }
    }
    if( status )
    printf( "%s", s );
    return;
}
Добавлено через 8 минут
Небольшая поправка:
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
54
55
56
57
58
59
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
 
void read_and_print( char *s );
 
int main( int argc, char **argv )
{
    if( argc < 2 ) {
    printf( "Error: enter file name\n" );
    return EXIT_FAILURE;
    }
    FILE *file;
    int i;
    char *line = NULL;
    size_t len = 0;
    ssize_t read;
    
    if( (file = fopen( argv[1], "r")) == NULL ) {
    fprintf( stderr, "Error: couldn't read file %s\n", argv[1] );
    return EXIT_FAILURE;
    }
    
    while( (read = getline( &line, &len, file)) != -1 ) {
    read_and_print( line );
    }
    free( line );
    fclose( file );
    
    return EXIT_SUCCESS;
}
 
void read_and_print( char *s )
{
    char *ps = s;
    int status = 0;
    
    while ( *ps != '\n' && *ps != '\0' ) {
    while( isspace(*ps) )
        ++ps;
    if( *ps == '\n' || *ps == '\0')
        break;
    if( *ps == '-' || *ps == '+' )
        ++ps;
    if( *ps == '0' )
        ++ps;
    if( isdigit(*ps) && isdigit(*(ps+1)) && isspace(*(ps+2)) ) {
        ps = ps + 2;
        status = 1;
    }
    else {
        status = 0;
        break;
    }
    }
    if( status )
    printf( "%s", s );
    return;
}
1
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
12.12.2012, 14:08
xtorne21st, Я прям-таки очень прошу, чтобы ответы на тему в разделе С++ писались на С++. Ибо если ТС-а удовлетворяет ответ на Си, значит ему в раздел Си => тема будет перенесена.

Добавлено через 50 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <string>
#include <fstream>
 
#include <boost/regex.hpp>
 
int main()
{
   const boost::regex re("(^|\\D)\\d{2}($|\\D)");
   std::ifstream ifs("file1.txt");
   std::string current;
   while (std::getline(ifs, current))
   {
      if (boost::regex_search(current, re))
      {
         std::cout << current << std::endl;
      }
   }
}
Bash
1
2
3
4
5
6
7
8
9
forever@pterois:~/My_pro1/cpp_pro$ cat file1.txt 
this is nothing
what is 23 its
now this is end
and 1234 hello
12 with
forever@pterois:~/My_pro1/cpp_pro$ ./new 
what is 23 its
12 with
2
 Аватар для DPS
43 / 41 / 20
Регистрация: 12.11.2011
Сообщений: 188
12.12.2012, 15:21
Такой еще вариант)

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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#include<iostream>
#include<cctype>        //для функции isdigit()
#include<fstream>       //файлы
#include<string>        //строки
 
using std::string;
using std::cin;
using std::cout;
using std::endl;
using std::ifstream;
 
bool est_li_dve_cifri_v_stroke(const string &copy_stroka);
 
int main()
{
    setlocale(LC_ALL,"Rus");
 
    string namefile;
 
    cout<<"Введите путь к файлу:  ";
    getline(cin,namefile);
    
    ifstream in(namefile.c_str());;
 
    if(!in.is_open())
    {
        cout<<"Не удалось открыть файл!!!";
        exit(0);    //выход из программы
    }
 
    cout<<"*************************************************"<<endl;
 
    string stroka;
    bool a;
 
    while(in.good())
    {
        a=false;            //полагаем, что функция не содержит двухзначное число
        getline(in,stroka); //читаем строку
        a=est_li_dve_cifri_v_stroke(stroka);    //передаем ее в функцию, которая определяет, содержит ли строка двухзн. число
        
        if(a)       //если строка содержит двухзначн. число, выводим
            cout<<stroka<<endl;     //строку на экран
    }
 
    in.close();     //закрываем файл*/
 
    return 0;
}
 
bool est_li_dve_cifri_v_stroke(const string &copy_stroka)
{
    string::size_type i=0;
 
    char simvol;
 
    for(i=0;i!=copy_stroka.size();++i)  //от начала строки и до конца
    {
        if(isdigit (simvol=copy_stroka[i]&127) )    //если считанный символ - цифра, проверяем следующий
        {
            ++i;
 
            if(i==copy_stroka.size())   //если строка закончилась
                break;                  //выходим из цикла
            else if(isdigit(simvol=copy_stroka[i]&127) )    //иначе если считанный символ - цифра, проверяем следующий(число уже двухзначное)
                {
                    ++i;
 
                    if(i==copy_stroka.size()||(!isdigit( simvol=copy_stroka[i]&127)) )  //если строка закончилась или следующий символ - не цифра
                        return true;    //значит, строка содержит двухзначное число
                }
        }
    }
 
    return false;
}
Миниатюры
Для тех кто умеет работать с файлами (Вывести на экран только строки, содержащие двузначные числа)  
1
0 / 0 / 0
Регистрация: 05.11.2012
Сообщений: 25
12.12.2012, 19:23  [ТС]
Спасибо народ) Очень помогли
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.12.2012, 19:23
Помогаю со студенческими работами здесь

Вывести на экран только предложения, содержащие двузначные числа (строки: string)
Помогите разобраться со строками, второй вечер не могу найти ошибку. Задание такое: Вывести на экран только предложения, содержащие...

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru