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

Имеется частичное непонимание кода - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ N последовательных членов Фибоначчи. С++ http://www.cyberforum.ru/cpp-beginners/thread894897.html
Найти первые N членов Фибоначчи с помощью рекурсии и вывести их на экран. Тут и тут есть нахождение четного и n-го члена последовательности Фибоначчи. Помогите вывести N первых членов последовательности с помощью рекурсии.
C++ Не изменяется элемент вектора при работе с ним по указателю Здравствуйте. Проблема следующая. Пишу свою велосипедную (на это, как на источник проблемы, не указывать) реализацию бинарного дерева для своего не менее велосипедного архиватора, использующего алгоритм Хаффмана. Составление нового кода для каждого символа происходит в отдельной функции, которая в качестве аргумента принимает указатель на структуру соответствующего символа. Структуры хранятся в... http://www.cyberforum.ru/cpp-beginners/thread894890.html
C++ Функции работы с процессами, как осуществить возвражение результата?
Например void main () { int res; /* запуск exe-шника , ниже*/ } дочерний
C++ Найти наиболее и наименее удаленные точки. Вычисление расстояния между парой точек оформить функцией
Даны координаты N точек на плоскости в виде маccивов X и Y. Найти наиболее и наименее удаленные точки. Вычисление расстояния между парой точек оформить функцией.
C++ 7.Дан список студентов. Общие поля: Ф.И.О., дата рождения, группа, средний балл. Если средний балл 4 и выше, то указать размер стипендии. Если средний http://www.cyberforum.ru/cpp-beginners/thread894864.html
#include <stdio.h> #include <string.h> #include <clocale> int main() { setlocale(0,"Rus"); static char res; int res_top = 0; printf("Количество студентов: "); /*fflush - функция, чтобы выведенная строка гарантированно попала на экран до ввода пользователя. Её, в принципе, для простоты можно убрать
C++ LPT порт, Ubuntu, code::blocks Итак, название темы говорит само за себя. Нужно в консольном приложении code::blocks под Ubuntu читать и писать данные из/в LPT-порт. Если точнее, нужно не просто передать информацию, а "дергать пины". Да, я знаю, что уже это спрашивал, но тогда как обычно про тему все забыли, пришлось новую делать. подробнее

Показать сообщение отдельно
exStas
2 / 2 / 0
Регистрация: 20.10.2012
Сообщений: 82
08.06.2013, 13:28     Имеется частичное непонимание кода
Задание:прочитать из файла строку символов.В данной строке каждый символ ? удвоить.Каждый символ ,стоящий перед !, заменить символом введенным с клавиатуры.Новую строку не создавать.Вывести исходную и преобразованную строки.

Имеется вот такой код.Некоторые моменты не понятны или есть ощущение,что не правильно их понял.Кому не трудно и интересно,оставьте,пожалуйста,подробные комментарии.
Заранее спасибо всем откликнувшимся!
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
#include <iostream>
#include <string>
#include <fstream>
#include <stdio.h>
#include <Windows.h>
using namespace std;
 
int main()
{
    string Str;
    ifstream ifs("input.txt");
    cin.rdbuf(ifs.rdbuf());
    getline(cin,Str);
    cout<<Str<<'\n';
    string string1("?");
    string string2("!");
    string string3("W");
 
    int pos=0;
    while(true)
    {
        pos = Str.find(string1,pos);
        if (pos != string :: npos)
        {
            Str.insert(pos,string1);
            pos+=2;
        }
        else
            break;
    }
    int count = 0;
    pos=0;
    while(true)
    {
        pos = Str.find(string2,pos);
        if (pos != string :: npos)
        {
            count++;
            pos++;
        }
        else
            break;
    }
    string arrayStr[256];
    int i=0;
    for(i=0;i<count;i++)
    {
        printf("Enter ch: ");
        char x[200];
        scanf ("%s",x);
        arrayStr[i]=x;
    }
    i=0;
    pos=0;
    while(true)
    {
        pos = Str.find(string2,pos);
        if (pos!=string :: npos)
        {
            Str.replace(pos-1,1,arrayStr[i++]);
            pos++;
        }
        else
            break;
    }
    cout<<Str<<'\n';
    system("pause");
    return 0;
}
Добавлено через 15 часов 17 минут
Актуально.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 14:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru