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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.67
sonic593
0 / 0 / 0
Регистрация: 24.10.2010
Сообщений: 5
24.10.2010, 11:58     Вывести на экран содержимое файла удалив лишние пробелы между словами #1
помогите дописать программу на 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; 
    }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.10.2010, 11:58     Вывести на экран содержимое файла удалив лишние пробелы между словами
Посмотрите здесь:

Выделить в тексте лишние пробелы между словами C++
C++ Исключить лишние пробелы между словами (комментарии)
Считать текст из файла, и вывести его на экран, заменив цифры от 0 до 9 словами C++
C++ Убрать в текстовом файле ненужные пробелы, оставив между словами по одному, между предложениями по два.
C++ Работа с файлами. Удалить все лишние пробелы, оставив между словами не более одного пробела
Строка: Удалить лишние пробелы между словами C++
Не работает код (программа считывает из файла строку, убирает лишние пробелы и записывает в другой файл строку, словами наоборот) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
White Luna
 Аватар для 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;
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 не пишутсо пробела
RUSya82
 Аватар для RUSya82
236 / 114 / 3
Регистрация: 15.10.2010
Сообщений: 395
24.10.2010, 12:52     Вывести на экран содержимое файла удалив лишние пробелы между словами #4
" " - это строковая константа, char tmp - это символ. Вы сравниваете символ со строкой.
sonic593
0 / 0 / 0
Регистрация: 24.10.2010
Сообщений: 5
24.10.2010, 12:57  [ТС]     Вывести на экран содержимое файла удалив лишние пробелы между словами #5
и как тогда?
я тупо алгоритм не могу придумать
RUSya82
 Аватар для RUSya82
236 / 114 / 3
Регистрация: 15.10.2010
Сообщений: 395
24.10.2010, 12:57     Вывести на экран содержимое файла удалив лишние пробелы между словами #6
Может я чего то не понимаю, но где у Вас тут прописано удаление лишних пробелов?
sonic593
0 / 0 / 0
Регистрация: 24.10.2010
Сообщений: 5
24.10.2010, 13:03  [ТС]     Вывести на экран содержимое файла удалив лишние пробелы между словами #7
это просто я непонимаю как их удалить
может это звучит глупо и нереализуемо но у меня была такая задумка прочитать пословно и вывести слова через пробел
RUSya82
 Аватар для RUSya82
236 / 114 / 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;
}
Вот как то так
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.10.2010, 14:13     Вывести на экран содержимое файла удалив лишние пробелы между словами
Еще ссылки по теме:

Удалить в строке лишние пробелы, оставив между словами ровно по одному C++
C++ Вывести содержимое файла на экран
Отредактировать текст, удалив лишние пробелы и оставив только по одному пробелу C++
C++ Пробелы между словами\предложениями
C++ Напечатать текст, выпустив повторяющиеся пробелы между словами

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

Или воспользуйтесь поиском по форуму:
sonic593
0 / 0 / 0
Регистрация: 24.10.2010
Сообщений: 5
24.10.2010, 14:13  [ТС]     Вывести на экран содержимое файла удалив лишние пробелы между словами #9
спасибо, все получилось, вам +1
Yandex
Объявления
24.10.2010, 14:13     Вывести на экран содержимое файла удалив лишние пробелы между словами
Ответ Создать тему
Опции темы

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