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

[Code::Blocks 12.11] непонятное зацикливание - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Ввод числа с клавиатуры http://www.cyberforum.ru/cpp-beginners/thread925088.html
Дано действительное число R вида nnn.ddd(три цифровых разряда в дробной и целой частях). Поменять местами дробную и целую части числа и вывести полученное значение числа. Нужно сделать чтобы число вводилось с клавиатуры, помогите пожалуйста.... #include<iostream.h> #include<windows.h> double l3(double r) { double int_p = int (r); double float_p = (r - int_p)*1000; int_p /= 1000; r =...
C++ Форматирование чисел с плавающей точкой Все знают про проблемы с представлением дробных чисел. Например: double test = .58; printf("%f\n", test); // 0.580000 printf("%.20f\n", test); // 0.57999999999999996003 Число .58 представлено как .57999... но выводиться как .58. Как реализовать такое форматирование? По каким правилам и до скольких знаков округлять? http://www.cyberforum.ru/cpp-beginners/thread925085.html
C++ Создание .dll в MSVC 2010 в чем ошибка?
Проблема в чем.. есть dll с тремя функциями... Скомпилировал и пытался подключить на другом ноуте к проекту... Но не известно по какой причине при вызове функций имена у них были в таком духе: @lvs_Process@20 ... И соответственно ошибка компилятора была LNK2019 .... Вот сам header: #ifndef LVS_PlugH #define LVS_PlugH ...
Четырёх связный список C++
Доброго всем времени суток. Помогите пожалуйста написать программу на с++ по следующему заданию: Создать класс "Матрица,n,m", где n и m - количество строк и столбцов в матрице. Каждый элемент, кроме элементов в крайних строках и столбцах, должен быть связан с соседними (звено 4-связного списка). Найти сумму двух матриц. Заранее большое спасибо!
C++ Обратная матрица. Метод Гаусса—Жордана http://www.cyberforum.ru/cpp-beginners/thread925066.html
Здравствуйте. Пишу программку вычисления матриц и вот эта функция ( см. код ) компилируется и работает без ошибок, но считает не правильно. Кто хорошо знает математику и программирование подскажите, что я делаю не так? Ссылка на вики обратная матрица http://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D1%80%D0%B0%D1%82%D0%BD%D0%B0%D1%8F_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86%D0%B0 Код проблемной функции....
C++ Программа проверяет корректность ввода данных 1) Пользователь вводит телефон и электронную почту. Программа проверяет корректность ввода данных. (Работа со строками и массивами.) Просто дайте подсказку как реализовать, я сам хочу сделать. подробнее

Показать сообщение отдельно
FanOfGun
6 / 6 / 1
Регистрация: 13.10.2012
Сообщений: 101
18.07.2013, 13:24     [Code::Blocks 12.11] непонятное зацикливание
main.cpp:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <string>
#include <Expresion.h>
 
using namespace std;
 
int main()
{
    Expresion expr("test+2");
    cout << /*expr.eval()*/"hello" << endl;
    return 0;
}
Expresion.h:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#ifndef EXPRESION_H
#define EXPRESION_H
#include <string>
using namespace std;
 
class Expresion
{
    public:
        Expresion(string expr);
        virtual ~Expresion();
        string eval();
    protected:
    private:
        string expr;
 
        string replaceall(string str, string find, string repl);
        void prepare();
        string getOp(int pos,int n);
};
 
#endif // EXPRESION_H
Expresion.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
#include "Expresion.h"
#include <string>
 
using namespace std;
 
Expresion::Expresion(string expr)
{
    this->expr=expr;
    prepare();
}
 
Expresion::~Expresion()
{
    //dtor
}
 
void Expresion::prepare(){
    string delims="+-/*()";
    for (unsigned i=0;i<delims.length();i++)
        expr=replaceall(expr,delims.substr(i,1)," "+delims.substr(i,1)+" ");
}
 
string Expresion::replaceall(string str,string srch,string repl){
    unsigned p=0;
    while((p=str.find(srch))!=string::npos)
        str=str.replace(p,srch.length(),repl);
    return str;
}
 
string Expresion::eval(){
    return expr;
}
 
string Expresion::getOp(int pos,int n){
    return "";
}
Когда Expresion expr("test+2"); закоментированно, все нормально и предсказуемо, но стоит ее раскоментировать -- программа зацикливается, при нажатии на Break debugger выдает:
Код
Trying to pause the running process...
Program received signal SIGTRAP, Trace/breakpoint trap.
In ntdll!LdrFindResource_U () (C:\Windows\system32\ntdll.dll)
что я делаю не так? Заранее благодарен.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 11:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru