Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Лида03
0 / 0 / 0
Регистрация: 19.09.2016
Сообщений: 22
1

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

10.03.2018, 20:59. Просмотров 1014. Ответов 4
Метки нет (Все метки)

Написать программу, которая считывает текст из файла и выводит в другой файл и на экран только строки, не содержащие цифр.Помогите разобраться только в отрывке где нужно выделить строки не содержащие цифр
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
int function1()
{
    int const NUM = 5;
    FILE *my_file = fopen("data.txt", "r");
    if (my_file == 0)
    {
        printf("Error of file opening!");
        return -1;
    }
    const int MAX_SIZE = 1024;
    char text[MAX_SIZE];
    fgets(text, MAX_SIZE, my_file);
    char sentences[NUM][MAX_SIZE];
    char * p;                           
    p = strtok(text, ".!?");         
    for (int i = 0; i < NUM; ++i)
    {
        strncpy(sentences[i], p, MAX_SIZE);     // помещаем предложение в массив        
        p = strtok(0, ".!?");                       // берем следующий за разделителем символ, принадлежащий очередному предложению     
        if ((p == 0) && (i < NUM))            // проверка наличия в тексте  предложений    
        {
            printf("Error! Less than %i sentences!", NUM);
            return -1;
        }
    }     fclose(my_file);
 
    printf("\nOriginal text:\n");
    for (int i = 0; i < NUM; ++i)
    {
        printf("%s\n", sentences[i]);           // вывод предложений    
    }
    
    my_file = fopen("result.txt", "w");         // открытие файла на запись   
    fprintf(my_file, "Only string without numbers:\n");
    printf("\nOnly string without numbers:\n");
    
    for (int i = 0; i < NUM; ++i)
    {  
            if (isdigit(sentences[i])) //  НЕ МОГУ ТУТ СДЕЛАТЬ ПИШЕТ НЕСОВМЕСТИМЫ ТИПЫ char and int
            {
            fprintf(my_file, "%s\n", sentences[i]);
            printf("%s\n", sentences[i]);
            }
    }
        fclose(my_file);
        return 0;
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.03.2018, 20:59
Ответы с готовыми решениями:

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

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

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

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

Считать текст из файла и записать в другой только строки, не содержащие определенных символов
Всем привет, кто может помочь с решением данной задачи, буду очень благодарен. &quot;Написать...

4
Lambont
92 / 91 / 61
Регистрация: 23.11.2013
Сообщений: 242
10.03.2018, 21:08 2
Потому что функция isdigit принимает целое число, а не указатель на строку
Исправьте 39 строку:
C++
1
if (atoi(sentences[i]))
0
Лида03
0 / 0 / 0
Регистрация: 19.09.2016
Сообщений: 22
10.03.2018, 21:54  [ТС] 3
все равно не работает, программа ничего не выдает после 35 строки

Добавлено через 21 минуту
ведь без isdigit не идет проверка по цифрам
0
Lambont
92 / 91 / 61
Регистрация: 23.11.2013
Сообщений: 242
10.03.2018, 23:05 4
Лучший ответ Сообщение было отмечено Лида03 как решение

Решение

Цитата Сообщение от Лида03 Посмотреть сообщение
ведь без isdigit не идет проверка по цифрам
А isdigit может проверять только один символ.

Вам ведь надо в том цикле вывести только те строки, которые не содержат цифры?
Замените цикл который с 37 строки:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    bool check;
    for (int i = 0; i < NUM; ++i)
    {
        check = false;
        for (int j = 0; j < MAX_SIZE && sentences[i][j]; ++j)
        {
            if (isdigit(sentences[i][j]))
            {
                check = true;
                break;
            }
        }
        if (!check) {
            fprintf(my_file, "%s", sentences[i]);
            printf("%s", sentences[i]);
        }
    }
1
Лида03
0 / 0 / 0
Регистрация: 19.09.2016
Сообщений: 22
10.03.2018, 23:11  [ТС] 5
спасибо большое, все заработало))
0
10.03.2018, 23:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.03.2018, 23:11

Считать текст из файла и вывести на экран только предложения, не содержащие запятых
Здравствуйте. Прошу помощи в написание программу на C++ &quot;Написать программу, которая считывает...

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

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


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

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

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