Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 24.10.2010
Сообщений: 5
1

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

24.10.2010, 11:58. Просмотров 2697. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.10.2010, 11:58
Ответы с готовыми решениями:

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

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

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

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

__________________
Помогаю в написании студенческих работ здесь.
Записывайтесь на профессиональные курсы C++ разработчиков
8
33 / 27 / 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
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
239 / 117 / 14
Регистрация: 15.10.2010
Сообщений: 395
24.10.2010, 12:52 4
" " - это строковая константа, char tmp - это символ. Вы сравниваете символ со строкой.
0
0 / 0 / 0
Регистрация: 24.10.2010
Сообщений: 5
24.10.2010, 12:57  [ТС] 5
и как тогда?
я тупо алгоритм не могу придумать
0
239 / 117 / 14
Регистрация: 15.10.2010
Сообщений: 395
24.10.2010, 12:57 6
Может я чего то не понимаю, но где у Вас тут прописано удаление лишних пробелов?
0
0 / 0 / 0
Регистрация: 24.10.2010
Сообщений: 5
24.10.2010, 13:03  [ТС] 7
это просто я непонимаю как их удалить
может это звучит глупо и нереализуемо но у меня была такая задумка прочитать пословно и вывести слова через пробел
0
239 / 117 / 14
Регистрация: 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
0 / 0 / 0
Регистрация: 24.10.2010
Сообщений: 5
24.10.2010, 14:13  [ТС] 9
спасибо, все получилось, вам +1
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.10.2010, 14:13

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

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

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

Удалить из текстового файла все лишние пробелы, оставив между словами не более 1 пробела
. Создать текстовый файл, содержащий произвольный текст. Удалить из него все лишние пробелы,...

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

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

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


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

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

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