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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.60
Dante_94
0 / 0 / 0
Регистрация: 19.05.2012
Сообщений: 13
#1

Работа с файлами. Удалить все лишние пробелы, оставив между словами не более одного пробела - C++

17.01.2013, 17:26. Просмотров 1430. Ответов 5
Метки нет (Все метки)

Дан текстовый файл. Удалить из него все лишние пробелы, оставив между словами не более одного пробела. Результат поместить в новый файл.
Помогите пожалуйста программа нужна срочно и сегодня!

Добавлено через 8 минут
Цитата Сообщение от Dante_94 Посмотреть сообщение
Дан текстовый файл. Удалить из него все лишние пробелы, оставив между словами не более одного пробела. Результат поместить в новый файл.
Помогите пожалуйста программа нужна срочно и сегодня!
Ещё есть код этой программы на Паскале:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var f,g:text;
     s:string;
     i:byte;
begin
assign(f,'input.txt');
reset(f);
assign(g,'output.txt');
rewrite(g);
while not eof(f) do
 begin
  readln(f,s);
  while pos('  ',s)>0 do delete(s,pos('  ',s),1);{в апострофах по 2 пробела}
  writeln(g,s);
 end;
close(f);
close(g);
end.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.01.2013, 17:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Работа с файлами. Удалить все лишние пробелы, оставив между словами не более одного пробела (C++):

Удалить в строке лишние пробелы, оставив между словами ровно по одному - C++
Дана строка состоящая из слов, между которыми есть некое количество пробелов. Требуется удалить лишние пробелы, оставив между словами...

Строка: Удалить лишние пробелы между словами - C++
Задание: нужно удалить лишние пробелы между словами (если один пробел, то его нужно оставить). # include <conio.h> # include...

Убрать в текстовом файле ненужные пробелы, оставив между словами по одному, между предложениями по два. - C++
Мое задание: убрать в текстовом файле ненужные пробелы, оставив между словами по одному, между предложениями по два. Вот программа...

Исключить лишние пробелы между словами (комментарии) - C++
Помогите пожалуйста разобраться в коде, писала не я, мало что тут понимаю, но мне нужны некоторые элементы этой задачи, чтобы решить свою:)...

Выделить в тексте лишние пробелы между словами - C++
ЕЩе одна задачка из Павловской... Прошу помощи!!! Если вам лень решать всю задачу, то меня очень интересует второй пункт... Но буду рад...

Вывести на экран содержимое файла удалив лишние пробелы между словами - C++
помогите дописать программу на visual c++ Дан текстовый файл, в котором слова разделены 1 и более пробелами. Вывести на экран содержимое...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Invader_Zim
Twilight Parasite
153 / 149 / 2
Регистрация: 21.07.2011
Сообщений: 908
17.01.2013, 17:44 #2
Dante_94, а в чем собственно проблема?
создает входной файловый поток, открываем файл и в цикле по нему проходимся. все пишем в строку. Потом эту строку пишем в новый файл
Dante_94
0 / 0 / 0
Регистрация: 19.05.2012
Сообщений: 13
17.01.2013, 17:52  [ТС] #3
Цитата Сообщение от Invader_Zim Посмотреть сообщение
Dante_94, а в чем собственно проблема?
создает входной файловый поток, открываем файл и в цикле по нему проходимся. все пишем в строку. Потом эту строку пишем в новый файл
Спасибо но мне код программы нужен.
Invader_Zim
Twilight Parasite
153 / 149 / 2
Регистрация: 21.07.2011
Сообщений: 908
17.01.2013, 18:00 #4
Dante_94,

Не по теме:

А мне нужен рейлган, но я его не требую.

Dante_94
0 / 0 / 0
Регистрация: 19.05.2012
Сообщений: 13
17.01.2013, 18:26  [ТС] #5
Цитата Сообщение от Invader_Zim Посмотреть сообщение
Dante_94, а в чем собственно проблема?
создает входной файловый поток, открываем файл и в цикле по нему проходимся. все пишем в строку. Потом эту строку пишем в новый файл
Пожалуйста напишите код программы. Я просто не особо разбираюсь в работе с файлами.
Croessmah
Модератор
Эксперт CЭксперт С++
13139 / 7402 / 829
Регистрация: 27.09.2012
Сообщений: 18,243
Записей в блоге: 3
Завершенные тесты: 1
17.01.2013, 18:48 #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 <fstream>
void Trim_SD(char * dest, char * source){
    for(char *p1=source,*p2=dest; (*p2=*p1);++p1,++p2){
        if(*p1!=' ') continue;
        for(;*p1==' ';++p1);
            p2+=(p2==dest || !(*p1))?0:1;
            *p2=*p1;
    }
}
int main(){
    char * str;
    std::fstream file("input.txt",std::ios::in | std::ios::binary);
    file.seekg(0,std::ios::end);
    fpos_t size=file.tellp();
    file.seekg(0,std::ios::beg);
    str=new char[size+1];
    file.read(str,size);
    str[size]=0;
    file.close();
    Trim_SD(str,str);
    file.open("output.txt",std::ios::out | std::ios::binary);
    file.write(str,strlen(str));
    return 0; 
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.01.2013, 18:48
Привет! Вот еще темы с ответами:

В тексте вставить между словами вместо одного пробела запятую и пробел - C++
Доброго времени суток! В С++ я полный ноль. Пытаюсь разобраться со строками. Не могу понять, как это реализовать. Вот что есть сейчас: ...

Удалить все лишние пробелы - C++
В чем ошибка? #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; int main() { string s;

Дано текст, содержащий от 2 до 30 слов, в каждом из которых от 2 до 10 латинских букв, между соседними словами - не менее одного пробела - C++
Дано текст, содержащий от 2 до 30 слов, в каждом из которых от 2 до 10 латинских букв, между соседними словами - не менее одного пробела....

Удалить из файла все лишние пробелы - C++
Добрый день помоги пожалуйста с задачами на файлы 1) Дан текстовой файл. Удалить из него все лишние пробелы, оставив между словами не...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
17.01.2013, 18:48
Ответ Создать тему
Опции темы

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