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

В файле заменить каждый символ первого наиболее короткого слова на «*» - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ С (While) http://www.cyberforum.ru/cpp-beginners/thread256241.html
помогите решить 4 задачу:
C++ C (условный оператор) помогите решить задачи (кроме 3): http://www.cyberforum.ru/cpp-beginners/thread256234.html
Сгенерировать массив размером 20 на 20 из чисел от 0 до 15. Сосчитать количество повторений каждого символа. C++
Всем здорово!Помогите пожалуйста с программами завтра рубежка...(на turbo C,не С++),если можно пожалуйста объясните,или закомментируйте. 28. Сгенерировать массив размером 20 на 20 из чисел от 0 до 15. Сосчитать количество повторений каждого символа. 29. Создать массив размером М на М, где М нечетное число и заполнить его следующим образом: от левого верхнего угла к правому...
Перегрузка Операторов в стеки C++
надо перегрузить операторы в стеки но у меня не получаеться как это можно реализовать: Перегруженные операции: + добавление элемента; - удаление элемента; индексирование; = копирование; == отношение равенства; > отношение порядка;
C++ Строки, в которых присутствуют пробелы http://www.cyberforum.ru/cpp-beginners/thread256199.html
Помогите пожалуйста! Мне нужно сделать очень простую программу, которая практически вся строится на выводе. Нужно вводить несколько данных как числовых так и текстовых, а потом они выводятся на экран в необходимом виде. С числами проблем никаких не возникло, с одной символьной переменной тоже, т.к. в ней не нужны пробелы. Но есть еще одна переменная, в которой необходимо ввести небольшой текст,...
C++ Перевести код с С++ в С и Pascal кароч люди мну дали задание....... мну нада перевести з одного с(си) в другой с(си) и потом в паскаль.... кто может помогите: #include "stdafx.h" #include <iomanip> #include <iostream> using namespace std; int min1(int,int); int min2(int,int); int min3(int,int); void main(){ int a,b,c; подробнее

Показать сообщение отдельно
IrineK
Заблокирован
13.03.2011, 16:43     В файле заменить каждый символ первого наиболее короткого слова на «*»
Решение:
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
 
//чтение из файла
void fileDisplay(char* path)
{
    ifstream iFSTR;
    iFSTR.open(path);
    char buffer[80];
    if(iFSTR.is_open())
    {   while (iFSTR.good())
        {   iFSTR.getline(buffer,80,'\n');
                cout<<buffer<<"\n";
        }
        iFSTR.close();
    }
    else 
    {   cout<<"Error opening file\n";
        cin.get();
        exit(1);
    }
}
 
//поиск длины первого самого короткого слова
int shortest(char* path)
{   int N, min=100;
    string current, change="";
    ifstream iFSTR;
    iFSTR.open(path);
    if(iFSTR.is_open())
    {   while(iFSTR.good())
        {   iFSTR>>current; //считывание отдельных слов
            N = current.length();
            if (N < min) min = N;
        }
    iFSTR.close();
    return min;
    }
    else 
    {   cout<<"Error opening file\n";
        cin.get();
        exit(1);
    }
}
 
//замена слова на ** с записью в файл
void changeToStars(char* path, int minL)
{   long position;
    string current, change = "";
    for(int i = 0; i<minL;i++)
        change+="*"; //строка минимальной длины из **
    
    fstream FSTR;
    FSTR.open(path,fstream::in | fstream::out);
    if(FSTR.is_open())
    {   while(FSTR.good())
        {   FSTR>>current;//считывание отдельных слов
            if(current.length()==minL)
            {   position = FSTR.tellg();
                FSTR.seekp(position-minL);//возврат указателя на начало слова
                FSTR<<change;//замена на строку из **
                break;
            }
        }
    FSTR.close();
    }
    else
    {   cout<<"Error opening file\n";
        cin.get();
        exit(1);
    }
}
 
 
int main ()
{
    char* pathF = "test.txt";
    cout<<"Original file\n";
    cout<<"______________________________________________\n";
    fileDisplay(pathF);
    int found = shortest(pathF);
    changeToStars(pathF,found);
 
    cout<<"\n\nChanged file\n";
    cout<<"______________________________________________\n";
    fileDisplay(pathF);
 
    cin.get();  
    return 0;
}
 
Текущее время: 06:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru