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

Выбор файла для открытия - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Поток ввода-вывода http://www.cyberforum.ru/cpp-beginners/thread1245624.html
#include <iostream> using namespace std; int main() { int i; while(true) { if(cin>>i)
C++ Что такое "сокет"? Посоветуйте литературу Сокет - название программного интерфейса для обеспечения обмена данными между процессами, что то вроде управления протоколом ? и посоветуйте пожалуйста литературу http://www.cyberforum.ru/cpp-beginners/thread1245619.html
Компилирование данных C++
При написании программы на компилированном языке известно что программа переводится на более низкий уровень в язык Ассемблера, но ведь для каждой архитектуры имеется свой список команд и т. д тогда как компилятор определяет этот список объясните пожалуйста
C++ MSDN где можно скачать новую библиотеку?
Вопрос по MSDN библиотеке. Я смог скачать только для VS 2008. А где можно скачать новую библиотеку???
C++ Функция, проверяющая сходимость метода Зейделя http://www.cyberforum.ru/cpp-beginners/thread1245580.html
Напишите пожалуйста функцию, проверяющую сходимость метода Зейделя. Последний кусок программы, не знаю как написать. Добавлено через 15 часов 17 минут Помогите кто-то
C++ В чём смысл return в main()? Есть ли смысл возвращать значение переменной в main()? Если да - зачем? #include<iostream> using namespace std; int main() { int a; cin >> a; подробнее

Показать сообщение отдельно
Glebordan
0 / 0 / 0
Регистрация: 07.04.2014
Сообщений: 36
22.08.2014, 11:48  [ТС]     Выбор файла для открытия
Хмм...не выходит что-то....
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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
#include "stdafx.h"
#include<cstdio>
#include<cstring>
#include<string>
#include<iostream>
#include<windows.h>
#include<conio.h>
#include<locale.h>
#include <fstream>
 
using namespace std;
 
char s[10000], t[10000], r[10000], key;
int len, last, sz, sz2, beg;
bool sl, boo, pr;
string f , file_name;
//вывод меню
void Menu()
{
    system("cls");
    cout << "Меню:" << "\n";
    cout << "1. Сохранить в" << endl;
    cout << "2. Редактировать" << endl;
    cout << "3. Выход" << endl;
    cout << "4. Введите имя файла: " << endl;
}
 
//определяет, является ли символ знаком препинания
bool prep(char c)
{
    if (c == ',' || c == '.' || c == '!' || c == '?')
        return 1;
    return 0;
}
 
int main()
{
    setlocale(LC_ALL, "Russian"); //установка русского языка
    while (1)
    {
        Menu(); //вывод меню
        key =_getch(); //считываем введенный символ
        switch (key)
        {
        case'1': //сохранить в
            cout << "Введите имя выходного файла:";
            getline(cin, f); //запоминаем в переменную имя выходного файла
            break;
        case '2':{ //редактировать
                     //cout << f << endl;
                     ifstream fin;
                     fin.open(file_name.c_str()); //открываем файл на чтение
                     ofstream out(f.c_str()); //открываем файл на запись
                     while (in.getline(s, sizeof(s))) //пока считываем очередную строку
                     {
                         len = strlen(s); //длина
                         s[len++] = ' '; //добавляем пробел в конец
                         beg = -2; //начало последнего обработанного слова
                         last = -1; //конец предпоследнего обработанного слова
                         for (int i = 0; i < len; i++)
                         if (!prep(s[i]) && s[i] != ' ') //если символ принадлежит слову
                         {
                             sl = 1; //слово еще не выведено
                             if (!(sz > 1 && s[i] == t[sz - 1] && s[i] == t[sz - 2])) //избавляемся от трех и более последовательных букв
                                 t[sz++] = s[i]; //записываем слово в отдельную строку
                             if (i == 0 || (prep(s[i - 1]) || s[i - 1] == ' '))
                                 beg = i; //запоминаем начало слова
                         }
                         else
                         {
                             if (sl) //если слово еще не выведено
                             {
                                 boo = 0;
                                 //если слово равно предыдущему, то запомним это
                                 if (sz2 == sz)
                                 {
                                     for (int j = 0; j < sz; j++)
                                     if (r[j] != t[j])
                                         boo = 1;
                                 }
                                 else
                                     boo = 1;
                                 if (boo || pr) //если слово не равно предыдущему или между ними был знак препинания
                                 {
                                     for (int j = last + 1; j < beg; j++)
                                         out << s[j]; //выводим пробелы между словами
                                     for (int j = 0; j < sz; j++)
                                         out << t[j]; //выводим само слово
                                 }
                                 sl = 0; //слово выведено
                                 for (int j = 0; j < sz; j++)
                                     r[j] = t[j]; //запоминаем слово как предыдущее
                                 sz2 = sz;
                                 sz = 0;
                                 pr = 0; //знака препинания последним не было
                                 last = i - 1; //слово только что закончилось
                                 beg = -2;
                             }
                             if (prep(s[i])) //если знак препинания
                             {
                                 pr = 1; //знак препинания был
                                 last = 1e9; //чтобы не выводить лишние пробелы
                                 out << s[i] << " "; //выводим знак препинания и пробел
                             }
                         }
                         out << endl; //перевод строки
                     }
 
                     in.close(); //закрываем файл на чтение
                     out.close(); //закрываем файл на запись
 
                     break;
        }
        case '3': {return 0; } //завершаем работу//выход
        case'4':{
                    cout << "Введите имя редактируемого файла:";
                    getline(cin, file_name);
                    
 
        }
 
            
        }
    }
}
 
Текущее время: 14:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru