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

Убрать лишние пробелы в строке из файла - C++

Восстановить пароль Регистрация
 
Svetlaya_st
Сообщений: n/a
14.12.2012, 17:20     Убрать лишние пробелы в строке из файла #1
Строка считывается из текстового файла (тип fstream), имя которого запрашивается у пользователя. Строка состоит из нескольких слов, которые отделяются друг от друга пробелами (одним или несколькими). Требуется подсчитать число слов в строке и изменить ее так, чтобы слова разделялись одним пробелом.
Имеется код, где число слов подсчитывается нормально. А вот со второй частью задания возникли проблемы. Я не пойму, почему не работает. Подскажите!
// fileString.cpp: определяет точку входа для консольного приложения.
//

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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include "stdafx.h"
#include <iostream>
#include <fstream>
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
 {
    int number = 0, n = 0;
    char namFile[1000], symbol, *text = (char*) calloc(n, sizeof(char));
    cout << "Enter filename:\n";
    cin.getline(namFile, sizeof(namFile));
    ifstream in;
    in.open (namFile);
    if (in.is_open())
    {
        while (in.get(symbol))
        {
        n ++;
        
        text = (char*) realloc(text, n * sizeof(char));
         text[n - 1] = symbol;
        }
        in.close();
 
        for (int i = 0; i < n-1; i ++){
            if((text[i] == ' ') && (text[i + 1] == ' '))
            {   
                for (int j=i+1; j<n-1; j++)
                {
                text[j] = text[j+1];
                n=NULL;
                }
                
            }
        }
 
        for (int i = 0; i < n; i ++)
            if (text[i] == ' ')
                number ++;
        number ++;
        cout << "Number of words: " << number << "\n";
 
        cout<<"text"<<endl;
        for (int i = 0; i < n; i ++)
            cout<<text[i];
 
        ofstream out;
        out.open (namFile);
        if (out.is_open())
        {
            out.write(text, n);
        }
        out.close();
    }
    else cout << "Error\n";
 
    system("pause");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.12.2012, 17:20     Убрать лишние пробелы в строке из файла
Посмотрите здесь:

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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