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

С++ ВАЖНО. тяжело - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Массив в С++ http://www.cyberforum.ru/cpp-beginners/thread318756.html
Задан двухмеpный массив, содеpжащий n стpок и m столбцов. Получить из него новый массив той же pазмеpности путем деления каждого элемента исходного массива на сумму элементов стpоки, в котоpой он находится.
C++ Массив в С++ ВАЖНО Заданы два одномеpных массива X и Y, содеpжащие кооpдинаты N точек на плоскости. Опpеделить, сколько точек попадет внутpь окpужности с центpом в точке XO, YO и pадиусом R. http://www.cyberforum.ru/cpp-beginners/thread318755.html
C++ Разница между массивом структур и очередью
Поясните пожалуйста разницу между массивом структур и очередью.
C++ Игра на C++
Нужно написать какую-небуть не особо сложную игру на C++. В голову приходять разные арканоиды/танчики/бомбермены, но для них, насколько я понимаю, нужно знать OpenGL. Можно ли написать игру без OpenGL? Если нет, то можно ли освоить OpenGL на нужном уровне за 2 недели? Если да, то посоветуйте литературу почитать
C++ Структура и бинарное дерево. http://www.cyberforum.ru/cpp-beginners/thread318739.html
Задача такая: На междугородной телефонной станции картотека абонентов, содержащая сведения о телефонах и их владельцах, организована как двоичное дерево. Составить программу, которая: 1) обеспечивает начальное формирование картотеки в виде двоичного дерева; 2) производит вывод всей картотеки; 3) вводит номер телефона и время разговора; 4) выводит извещение на оплату телефонного...
C++ Переключение раскладки на Windows XP Доброго времени суток! Столкнулся с очень интересным глюком: есть программа A и программа B. Программа B запускает программу A через CreateProcess и висит в памяти до ее завершения, в цикле делая GetExitCodeProcess. Так вот, если запускать программу A просто так, то все нормально, а если запускать ее через программу B, то раскладка не меняется никак. Данный баг присутствует только на Windows... подробнее

Показать сообщение отдельно
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
13.06.2011, 20:17     С++ ВАЖНО. тяжело
Цитата Сообщение от schdub Посмотреть сообщение
diagon, не обрабатываются комментарии в строках.
Да там вообще мало что делается, фактически это тупо алгоритм, написанный на коленке=)
Я делал подобное задание в книге Страуструпа, только там нужно было удалить эти комментарии с учетом строковых констант, но исходник к сожалению не сохранился. Решал через вектор строк, в который заносил символы из считанной строки без учета собственно комментариев, использовал несколько (3 или больше) булевых переменных. В общем не сложно и здесь то же самое сделать, т.к. в паскале, насколько я помню, нету " а есть только '

Добавлено через 20 минут
Вот немного доработанный вариант, но баги еще могут быть, так как это очень халявное решение =)
Код
diagon@shadeware:~$ ./a.out
Enter code:
const str1 = '// commnent 1 in string';
      str2 = '{ commnent 2 in string }';
var x:integer; //variable
begin 
{some code}
readln; //pause
end.
----------------------------------------------------------------

variable
some code
pause
diagon@shadeware:~$
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <sstream>
#include <algorithm>
int main(){
        std::cout << "Enter code:\n";
        std::string code;
        for (std::string line;!count(line.begin(),line.end(),'.');code.push_back('\n')){
                std::getline(std::cin,line);
                code += line;
        }  
        std::cout << "----------------------------------------------------------------\n";
        bool x=false,y=false;
        unsigned q = 0;
        for (std::string::iterator it = code.begin(); it != code.end(); ++it){        
                if (*it == '}') {y = false; std::cout << std::endl; }
                if (*it == '\n') { if (x) std::cout << std::endl; x = false; }
                if (*it == '\'') ++q;
                if ((x||y)&&q%2==0) std::cout << *it;
                if (*it == '{') y = true; 
                if (*it == '/' && *(it+1) == '/' && q%2 == 0) {x = true; ++it;}
        }
        return 0;
}
 
Текущее время: 21:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru