С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.67
sonic593
0 / 0 / 0
Регистрация: 24.10.2010
Сообщений: 5
#1

Вывести на экран содержимое файла удалив лишние пробелы между словами - C++

24.10.2010, 11:58. Просмотров 1625. Ответов 8
Метки нет (Все метки)

помогите дописать программу на visual c++
Дан текстовый файл, в котором слова разделены 1 и более пробелами. Вывести на экран содержимое файла удалив лишние пробелы между словами.
Вот что получилось
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
#include<fstream>
#include<Windows.h>
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<iostream>
#include<ctype.h>
#define TMP " "
#define text "d:\potoki2.txt"
using namespace std;
void rm(char *str)
{
char message[2000];
CharToOem(str,message);
cout<<message;
}
void main()
{
    char buf[200],tmp;
    ifstream f(text,ios::in);
    if(!f)
    {
        rm("ОШИБКА ОТКРЫТИЯ ФАЙЛА!!!");
        _getch();
        exit(1);
    }
    rm("ФАЙЛ:\n");
    while(f>>buf)
    {f.getline(buf,100);
    cout<<buf<<endl;}
    f.close();
    f.open(text,ios::in);
    while (f>>tmp)
    {
        cout<<tmp;
        if (f==TMP)cout<<TMP; 
    }
 
 
    _getch();
}
вот тут чото не получается
C++
1
2
3
4
5
while (f>>tmp)
    {
        cout<<tmp;
        if (f==TMP)cout<<TMP; 
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.10.2010, 11:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывести на экран содержимое файла удалив лишние пробелы между словами (C++):

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

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

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

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

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

Не работает код (программа считывает из файла строку, убирает лишние пробелы и записывает в другой файл строку, словами наоборот) - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;string&gt; #include &lt;algorithm&gt; using namespace std; string...

8
White Luna
32 / 26 / 2
Регистрация: 08.09.2010
Сообщений: 402
24.10.2010, 12:20 #2
C++
1
2
3
cout<<tmp;
              
                if (f==TMP)cout<<TMP;
может стоит строчки местами поменять?
C++
1
2
 if (f==TMP)cout<<TMP; 
else cout<<tmp;
0
sonic593
0 / 0 / 0
Регистрация: 24.10.2010
Сообщений: 5
24.10.2010, 12:52  [ТС] #3
C++
1
2
if (f==TMP)cout<<TMP; 
else cout<<tmp;
всеравно спошняком выводит вапще без пробелов

Добавлено через 11 минут
я бы вот так написал:
C++
1
2
3
4
5
while (f>>tmp)
        {
                cout<<tmp;
                if (tmp==" ")cout<<TMP; 
        }
но visual c++ ругаетсо, говорит tmp==" " Error несовместимые типы операндов("char" и "const char*")

Добавлено через 8 минут
при
C++
1
f>>tmp
в tmp не пишутсо пробела
0
RUSya82
237 / 115 / 3
Регистрация: 15.10.2010
Сообщений: 395
24.10.2010, 12:52 #4
" " - это строковая константа, char tmp - это символ. Вы сравниваете символ со строкой.
0
sonic593
0 / 0 / 0
Регистрация: 24.10.2010
Сообщений: 5
24.10.2010, 12:57  [ТС] #5
и как тогда?
я тупо алгоритм не могу придумать
0
RUSya82
237 / 115 / 3
Регистрация: 15.10.2010
Сообщений: 395
24.10.2010, 12:57 #6
Может я чего то не понимаю, но где у Вас тут прописано удаление лишних пробелов?
0
sonic593
0 / 0 / 0
Регистрация: 24.10.2010
Сообщений: 5
24.10.2010, 13:03  [ТС] #7
это просто я непонимаю как их удалить
может это звучит глупо и нереализуемо но у меня была такая задумка прочитать пословно и вывести слова через пробел
0
RUSya82
237 / 115 / 3
Регистрация: 15.10.2010
Сообщений: 395
24.10.2010, 13:58 #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
#include<fstream>
#include<stdio.h>
#include<conio.h>
#include<iostream>
 
using namespace std;
 
int main()
{
        char buf[201],tmp;
        int n;
        ifstream f;
        f.open("111.txt");
        if(!f)
        {
                cout << "ERROR!!!";
                _getch();
                exit(1);
        }
        cout << "Source FILE:\n";
        f.getline(buf,200);
        n = strlen(buf);
        cout << buf << endl;
        cout << "Formatting FILE\n";
        cout << buf[0];
        for(int i=1; i<n; i++)
        {
           if((buf[i] == ' ') && (buf[i-1] == ' '))
              continue;
           cout << buf[i];
        } 
        f.close();
        getch();
        return 0;
}
Вот как то так
1
sonic593
0 / 0 / 0
Регистрация: 24.10.2010
Сообщений: 5
24.10.2010, 14:13  [ТС] #9
спасибо, все получилось, вам +1
0
24.10.2010, 14:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.10.2010, 14:13
Привет! Вот еще темы с ответами:

Отредактировать текст, удалив лишние пробелы и оставив только по одному пробелу - C++
Помогите пожалуйста написать программу .В исходном предложении поставить произвольное число пробелов между словами. Отредактировать текст,...

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

Пробелы между словами\предложениями - C++
Помогите с заданием: Дан произвольный текст. Отредактировать текст так, чтобы: а) между словами был ровно один пробел; б)...

Отредактировать текст, удаляя лишние символы пробелов между словами - C++
Отредактировать текст,удаляя лишние символы пробелов между словами;по нажатию произвольной клавиши выделить первое предложение текста.


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

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

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