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

помогите с програмкой - C++

Войти
Регистрация
Восстановить пароль
 
batonza
0 / 0 / 0
Регистрация: 01.10.2009
Сообщений: 5
01.10.2009, 22:11     помогите с програмкой #1
Необходимо написать программку, открывающую текстовый файл, которая при просмотре файла: удаляет в каждой строке слова после которых стоит любой знак препинания, в том числе и сам знак...

Помогите пожалуйста с написанием данной программки...

Добавлено через 1 час 6 минут
или подскажите пожалуйста коды знаков препинания

или проще их так перечислить??
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.10.2009, 22:11     помогите с програмкой
Посмотрите здесь:

Помогите !!!! C++
Требуется помощь с програмкой C++
Проконсультируйте с програмкой C++
C++ помогите)
C++ ПОМОГИТЕ С++
C++ помогите
C++ Помогите
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
M128K145
Эксперт C++
 Аватар для M128K145
8276 / 3495 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
01.10.2009, 22:44     помогите с програмкой #2
для знаков препинания используй обычный массив чаров. или если нужны именно кода, то вот переписывай их отсюда ASCII.rar
batonza
0 / 0 / 0
Регистрация: 01.10.2009
Сообщений: 5
02.10.2009, 12:07  [ТС]     помогите с програмкой #3
Цитата Сообщение от M128K145 Посмотреть сообщение
для знаков препинания используй обычный массив чаров. или если нужны именно кода, то вот переписывай их отсюда ASCII.rar
А можешь показать как так через массив чаров
это так записывается??:

char []="!" , "," , "." , ":" , ";" , "?";

вроде все знаки препинания

И еще такой вопрос, чтото все на форуме говорят, что нельзя удалить слова и знаки препинания в них в самом файле, это так??
odip
Эксперт C++
 Аватар для odip
7226 / 3288 / 59
Регистрация: 17.06.2009
Сообщений: 14,165
02.10.2009, 12:11     помогите с програмкой #4
Посмотри функцию ispunct().

Добавлено через 2 минуты
И еще такой вопрос, чтото все на форуме говорят, что нельзя удалить слова и знаки препинания в них в самом файле, это так?
А как ты их удалишь из файла ?
Можно прочитать весь файл в массив, изменить массив и записать массив в файл.
batonza
0 / 0 / 0
Регистрация: 01.10.2009
Сообщений: 5
02.10.2009, 13:25  [ТС]     помогите с програмкой #5
Цитата Сообщение от odip Посмотреть сообщение
Посмотри функцию ispunct().

Добавлено через 2 минуты

А как ты их удалишь из файла ?
Можно прочитать весь файл в массив, изменить массив и записать массив в файл.
нифига себе это я даже не представлюя как весь файл в массив записать
odip
Эксперт C++
 Аватар для odip
7226 / 3288 / 59
Регистрация: 17.06.2009
Сообщений: 14,165
02.10.2009, 13:35     помогите с програмкой #6
Молча.
Выделяешь большой кусок памяти и записываешь.
batonza
0 / 0 / 0
Регистрация: 01.10.2009
Сообщений: 5
02.10.2009, 15:32  [ТС]     помогите с програмкой #7
Пробовал сделать, но чтото как то плохо
непонимаю куда здесь впихнуть delete
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
#include <stdio.h>
#include <string.h>
 
void main()
{
    int kp;
    char *k, *nf, *kf;
    FILE *f1;
    if ((f1 = fopen("D:\\work\\B.txt", "a")) == 0)
    {
        printf("Ошибка при открытии файла B.txt");
        return 1;
    }
    const int N = 1000;
    char ch[N];
    char s[10]=',','.',':',';','!','?';
    nf = fgets(ch, N, f1);
    if (!nf)
    {
        printf("Ошибка чтения файла B.txt");
        return 1;
    }
    while ((kf = strchr(nf, '.')) != NULL)
    {   kp = 0;
        for (k = nf; k <= kf; k++)
            if (*k == s)  kp++;
            if (kp > 1)
        {
            if (nf != ch) fputc(' ', f2);
            for (k = nf; k <= kf; k++)
                fputc(*k, f2);
        }
        nf = ++kf;
        while (*nf == s) nf++;
    }
    fclose(f1);
    return 0;
}
odip
Эксперт C++
 Аватар для odip
7226 / 3288 / 59
Регистрация: 17.06.2009
Сообщений: 14,165
02.10.2009, 17:03     помогите с програмкой #8
Ты сначала выкини код работы с файлами и просто сделай со строкой.
C
1
2
3
4
5
6
7
8
char ch[1000];
 
strcpy( ch, "тут какой-то текст" );
 
// тут код обработки
 
// печатаем результат
printf( "%s\n", ch );
Добавлено через 38 секунд
А когда заработает - тогда делай с файлом.
Потому что с файлом ты тоже неправильно работаешь.
А так у тебя будет на одну проблему меньше
batonza
0 / 0 / 0
Регистрация: 01.10.2009
Сообщений: 5
02.10.2009, 21:28  [ТС]     помогите с програмкой #9
Цитата Сообщение от odip Посмотреть сообщение
Ты сначала выкини код работы с файлами и просто сделай со строкой.
C
1
2
3
4
5
6
7
8
char ch[1000];
 
strcpy( ch, "тут какой-то текст" );
 
// тут код обработки
 
// печатаем результат
printf( "%s\n", ch );
Добавлено через 38 секунд
А когда заработает - тогда делай с файлом.
Потому что с файлом ты тоже неправильно работаешь.
А так у тебя будет на одну проблему меньше
попробовал, получилось так
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
#include <string.h>
#include <stdio.h>
#include <conio.h>
void main()
{
int dlin,i,bw,ew, h;
i=0;
char ch[1000], bh[1000];
clrscr();
strcpy( ch, "Razrabotka sposoba, realizacii postavlennoi zadachi." );
dlin=strlen(ch);
ch[dlin]=' ';
ch[dlin+1]='\0';
dlin+=1;
h=0;
i=0;
bw=0;
while(i<dlin)
{
    if (ch[i]=='.' || ch[i]==',' || ch[i]==':' || ch[i]==';' || ch[i]=='!' || ch[i]=='?' || ch[i]=='-') {
        while(ch[i]=' ') {
         i--;
         ew++;
         delete(ch,bw-ew);
        }
      bw++;
     strncpy(bh,&ch[bw],ew-bw+1);
  };
 i++;
}
printf( "%s\n", bh );
getch();
}
но чтото он не компилиться...
вроде по смыслу у меня получилось ищет знак препинания, потом в обратную сторону пробел, и удаляет слово с пробелом
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.10.2009, 21:48     помогите с програмкой
Еще ссылки по теме:

Помогите!!!!=) C++
C++ выручите плз с програмкой
C++ помогите!
что не такс програмкой?я хочу вывести содержимое файла на экран? C++

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

Или воспользуйтесь поиском по форуму:
odip
Эксперт C++
 Аватар для odip
7226 / 3288 / 59
Регистрация: 17.06.2009
Сообщений: 14,165
02.10.2009, 21:48     помогите с програмкой #10
Если не компилируется - значит по смыслу ничего не получилось.
Исправляй ошибку.
Yandex
Объявления
02.10.2009, 21:48     помогите с програмкой
Ответ Создать тему
Опции темы

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