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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как в vector поместить double, bool? http://www.cyberforum.ru/cpp-beginners/thread731653.html
#include <stdio.h> #include <vector> using namespace std; void main() { vector<int> vec; double t = -12.34; bool b = false; vec.push_back(t);//как сюда поместить t? ...
C++ Прямое преобразование указателя на D int j = ( ( D* ) p )p -> y;// Прямое преобразование указателя на D помогите исправить ошибку...и напомните как называется данная работа с указателями .. http://www.cyberforum.ru/cpp-beginners/thread731649.html
Дано число а (1<а<=1.5) C++
Дано число а (1<а<=1.5). Из чисел 1+1/2, 1+1/3, ... напечатать те, которые не меньша а
C++ Проблемка с функцией Ранд
#include <iostream> #include <stdlib.h> #include <time.h> using namespace std; int main() { srand(TIME(0)); setlocale(LC_ALL,"Russian");
C++ Дано число а. Напечатать те, которые не превышают а http://www.cyberforum.ru/cpp-beginners/thread731618.html
Дано число а. Из чисел 1,4,9,16,25, ... напечатать те, которые не превышают а.
C++ Обход многомерного дерева Доброго времени суток, форумчане. Назрела проблема с многомерными деревьями. Задание гласит "Имеются две статьи. Каждая из них включает список источников. В них в свою очередь могут быть ссылки на... подробнее

Показать сообщение отдельно
Svetlaya_st

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

14.12.2012, 17:20. Просмотров 480. Ответов 0
Метки (Все метки)

Строка считывается из текстового файла (тип 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;
}
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru