0 / 0 / 0
Регистрация: 18.12.2012
Сообщений: 33
1

В каждой строке вставить после знаков препинания пробелы, если их там нет

11.01.2013, 19:09. Показов 2222. Ответов 16
Метки нет (Все метки)

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

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <ctype.h>
 
int main(){
    FILE* f=fopen("1.txt", "r");
    if(!f){perror(NULL); exit(1);}
    char txt[BUFSIZ]={'\0'}, *a=txt;
    while(!feof(f)){
        *a=fgetc(f);
        if(!ispunct(*(a-1))||*a!=' ') ++a;
    }
    *--a='\0';
    freopen("1.txt", "w", f);
    fputs(txt, f);
    fclose(f);
    return 0;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.01.2013, 19:09
Ответы с готовыми решениями:

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

Добавить пробелы после знаков препинания, если их там нет
Написать программу, выполняющую чтение текстового файла“input.in” и выполняющую его преобразование...

Добавить в строку пробелы после знаков препинания, если они там отсутствуют
Помогите написать код: &quot;Добавить в строку пробелы после знаков препинания, если они там...

Добавить в строку пробелы после знаков препинания, если они там отсутствуют
Создание простейшей программы на языке с# в Visual Studio Изучение компонентов RadioButton,...

16
1317 / 979 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
11.01.2013, 19:20 2
Допишите в начале
#include <stdlib.h>

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

Не по теме:

Sasha9 Не забывайте использовать теги кода

0
0 / 0 / 0
Регистрация: 18.12.2012
Сообщений: 33
11.01.2013, 19:22  [ТС] 3
Цитата Сообщение от David Sylva Посмотреть сообщение
Допишите в начале
#include <stdlib.h>

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

Не по теме:

Sasha9 Не забывайте использовать теги кода

написал тоже самое выходит
0
1317 / 979 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
11.01.2013, 19:24 4
Sasha9 у вас ошибки по коду или программа не так работает?
0
0 / 0 / 0
Регистрация: 18.12.2012
Сообщений: 33
11.01.2013, 19:25  [ТС] 5
Цитата Сообщение от David Sylva Посмотреть сообщение
Sasha9 у вас ошибки по коду или программа не так работает?
компиляция идет а потом выдает сообщение о том что нету файла. Хотя этот файл создан 1.txt
0
1317 / 979 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
11.01.2013, 19:28 6
Цитата Сообщение от Sasha9 Посмотреть сообщение
Хотя этот файл создан 1.txt
значит файл создан не там, создайте файл в директории с проектом.
0
0 / 0 / 0
Регистрация: 18.12.2012
Сообщений: 33
11.01.2013, 19:34  [ТС] 7
Цитата Сообщение от David Sylva Посмотреть сообщение
значит файл создан не там, создайте файл в директории с проектом.
программа и файл создан в одной директории . Но все равно не находит
0
1 / 1 / 0
Регистрация: 26.11.2012
Сообщений: 19
11.01.2013, 22:40 8
Sasha9, выделите код программы как код С кнопочкой на форуме, приятнее для глаза-то будет.
0
101 / 92 / 53
Регистрация: 22.03.2011
Сообщений: 226
11.01.2013, 22:54 9
Я просто холодный, не могут помочь.


Sasha9, Вот тебе код на проверку и смотри скрин.
C
1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
 
int main(){
    FILE* f;
    char txt[BUFSIZ]={'\0'}, *a=txt;
    f=fopen("1.txt", "w");
    
    fclose(f);
    return 0;
}
fopen в режиме записи - сам создает файл. теперь найди его. я нашел и ты найдешь.
Миниатюры
В каждой строке вставить после знаков препинания пробелы, если их там нет  
0
1317 / 979 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
11.01.2013, 23:15 10
Цитата Сообщение от CVB Посмотреть сообщение
Я просто холодный, не могут помочь

Не по теме:

Бессмысленное предложение.

0
101 / 92 / 53
Регистрация: 22.03.2011
Сообщений: 226
11.01.2013, 23:19 11
Если по коду, то вот
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <ctype.h>
 
int main(){
    FILE* f=fopen("1.txt", "r");
    char txt[BUFSIZ]={'\0'}, *a=txt;
    if(!f){perror(NULL); return 0;}
    
    while(!feof(f)){
        *a=fgetc(f);
        if(ispunct(*a) && *(a+1)!=' ') *++a=' ';
        a++;
    }
    *--a='\0';
    freopen("1.txt", "w", f);
    fputs(txt, f);
    fclose(f);
    return 0;
}
Добавлено через 2 минуты

Не по теме:

David Sylva, я с Вами не хочю спорить, но 5 первых постов - это посты просто поговорить.

0
David Sylva
11.01.2013, 23:46
  #12

Не по теме:

CVB Вы меня не поняли, мне просто формулировка понравилась, я понимаю, что вы описались, получилось просто забавно.

0
0 / 0 / 0
Регистрация: 18.12.2012
Сообщений: 33
12.01.2013, 07:39  [ТС] 13
Цитата Сообщение от CVB Посмотреть сообщение
Я просто холодный, не могут помочь.


Sasha9, Вот тебе код на проверку и смотри скрин.
C
1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
 
int main(){
    FILE* f;
    char txt[BUFSIZ]={'\0'}, *a=txt;
    f=fopen("1.txt", "w");
    
    fclose(f);
    return 0;
}
fopen в режиме записи - сам создает файл. теперь найди его. я нашел и ты найдешь.
да этот файл создался в этой же директории. А в той программе не создается почему то
0
101 / 92 / 53
Регистрация: 22.03.2011
Сообщений: 226
12.01.2013, 14:24 14
Цитата Сообщение от Sasha9 Посмотреть сообщение
А в той программе не создается почему то
в той программе ты открывал для чтения "r"(это значит что он должен был кем то создаться).
C
1
FILE* f=fopen("1.txt", "r");
Поскольку ты не менял режим на "w", то он и не создавался
0
0 / 0 / 0
Регистрация: 18.12.2012
Сообщений: 33
15.01.2013, 14:55  [ТС] 15
Цитата Сообщение от CVB Посмотреть сообщение
в той программе ты открывал для чтения "r"(это значит что он должен был кем то создаться).
C
1
FILE* f=fopen("1.txt", "r");
Поскольку ты не менял режим на "w", то он и не создавался
даже поменял так все равно не создается. может быть листинг программы не то?
0
158 / 157 / 81
Регистрация: 31.12.2012
Сообщений: 254
15.01.2013, 15:20 16
Нет прав на изменение/создание данного файла.
0
101 / 92 / 53
Регистрация: 22.03.2011
Сообщений: 226
15.01.2013, 15:39 17
Цитата Сообщение от Sasha9 Посмотреть сообщение
даже поменял так все равно не создается
Sasha9, И не должно создаватся. Вы сами должны создать. И открыть файл готовый для обработки.

Вы же просили такую задачу:
Цитата Сообщение от Sasha9 Посмотреть сообщение
В каждой строке вставить после знаков препинания пробели, если их там нет.
Т.е. вы файл должны сами заполнить. И потом открыть его через вашу программу, чтоб она обработала текст. И на этом все.
И Я дал код рабочий под то что вы просили. (Выше).


Если хотите чтоб все было в программе(и создание файла, и заполнение его через программу, и потом егоотрытия, и обработка и снова переписать файл - то все это нужно было указать чего именно вы хотите), то нате вам код. Ибо вы уже сами могли разобраться. Прошло 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
#include <stdio.h>
#include <ctype.h>
 
int main(){
    FILE* f=fopen("8.txt", "wt");//обїявили и создали файл
    char txt[BUFSIZ]={'\0'}, *a=txt,buf[100];
    printf("Vvedi stroky dlya faila:\n>>");
    fgets(buf,100,stdin);//считал с клавиатуры
    //теперь это же занисим в файл
    fputs(buf,f);
    fclose(f);//закрыли, чтоб указатель при следующем открытии стал вначало файла.
        
    if((f=fopen("8.txt","rt"))==NULL) //открываем тот самый файл для чтения, и проверка заодно
    {printf("FILE NOT OPEN!\n"); return 0;}
    //дальше тот же код без изменений.
    while(!feof(f)){
        *a=fgetc(f);
        if(ispunct(*a) && *(a+1)!=' ') *++a=' ';
        a++;
    }
    *--a='\0';
    fclose(f);
    freopen("8.txt", "w", f);
    fputs(txt, f);
    fclose(f);
    return 0;
}
Миниатюры
В каждой строке вставить после знаков препинания пробелы, если их там нет  
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.01.2013, 15:39

Добавить в строку пробелы после знаков препинания, если они там отсутствуют
Добавить в строку пробелы после знаков препинания, если они там отсутствуют.

В строке вставить после знаков препинания пробелы
7. Варианты индивидуальных заданий №2 Задание Вариант:строке вставить после знаков препинания...

Как вставить пробел после знака препинания, если его там нет?
Приветствую! Такую вот программку реализовал. Она считывает строку (как сделать, чтобы считывала...

В заданном тексте после каждого знака препинания («.», «,», «:», «;») вставить пробел, если его там нет.
В заданном тексте после каждого знака препинания («.», «,», «:», «;») вставить пробел, если его там...


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

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

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