К примеру, вот так. PHP: #include <iostream> #include <conio.h> #include <cmath> using namespace std; int main() { float value = 1.0; while ( 3.0 > value ) { if ( 2.0 == ( floor( value * 10.0 )/ 10.0 ) ) { cout << "value = " << value << endl; } value += 0.1; } _getch(); return 0; }
А можно с отклонением: Code: #include <math.h> #define EPSILON 0.01 using namespace std; int is_equal(float x1, float x2) { if(abs(x1-x2)<=EPS) { return 1; } return 0; } int main() { float x=1.0f; while (x < 3.0f) { if (is_equal(x,2.0f)) cout <<"x="<<x<<endl; x += 0.100000f; } }
Привет всем,хотелось бы узнать как задать параметр ввода для командной строки,чтобы вызвать функцию,например,есть функция добавления записи - addrec,надо в командной строке прописать laba.exe add -где как раз я не знаю как задать add ,который указывает на функцию добавления и после вылезло например,добавить данные??да,введите номер телефона...и так далее, спасибо заранее. А второй вопрос : reg = new TRegistry(); тут визуал студио 2010 ругается мол требуется спецификатор типа и наконец как определить переменную CMD ????? какую бибилотеку подключить или что? ZeroMemory(CMD,500); ругается на CMD - как его определить?? как раз ругается что не определён он
1) Задавать параметры для командной строки следует из командной строки или при помощи ярлыка или при запуске процесса. Командная строка запускается командой cmd из windows. 2,3)Книга по С++ любой раздел про переменные и типы данных.
Как сделать защиту от неверного ввода данных В программе нужно вводить предложение,и если ничего не вводишь или одно слово то писало бы ошибку.Как это реализовать?
Вся проблема а том, что не меньше 2символов можно сделать, а как сделать если меньше 2ух слов чтобы ошибку писало?
Алгоритм может быть такой: 0. Ищешь первый непробельный символ в считанной строке. 1. Ищешь пробел, начиная от позиции первого непробельного символа + 1. 2. Если пробел в строке присутствует - ищешь непробельный символ, начиная с позиции найденного пробела + 1. Иначе - в считанной строке одно слово. 3. Если непробельный символ не найден - в строке одно слово, иначе - несколько.
Как в с++ с библиотекой #include <stdio.h> считать строку вместе с пробелами, без использования функций fgets (так как она очень сильно забивает буфер). Смысл состоит в том, чтоб считать с файла 2 строки, в обеих существуют пробелы. СПС
#include <iostream> #include <fstream> using namespace std; ifstream in("input.txt"); int main() { char s[100]; in.getline(s,100); cout<<s; return 0; }
можно) Code: #include <fstream> using namespace std; ifstream in("input.txt"); ofstream out("output.txt"); int main() { char s[100]; in.getline(s,100); out<<s; return 0; }
выдает следующие ошибки: Error 1 error C2248: 'mystring::input_str' : cannot access private member declared in class 'stringildar' e:\classstring.cpp 57 Error 2 error C2248: 'Vector::m_pVec' : cannot access private member declared in class 'Vector' e:\classstring.cpp 76 не пойму как правильно написать, чтобы имел доступ к закрытым членам. подскажите пожалуйста Code: #include <iostream> #include <string.h> #include <conio.h> #include <stdlib.h> using namespace std; class Vector; class mystring{ private: char *input_str; public: mystring(); mystring(char inp); mystring(char *inp); mystring(const mystring &pp); ~mystring(); //char *get(); int operator==(const mystring &pp); operator char*() {return input_str;} void cpy(char *inp); void cpy1(char inp, int ch_sym); char get1(char *inp, int ch_sym); friend Vector str2Vct(const mystring &); }; class Vector { size_t m_Dim; // Размер вектора. double *m_pVec; // Адрес массива элементов. public: Vector(const size_t = 1, // Конструктор (единый). const double *const = 0); ~Vector(); // Деструктор. double Get(const size_t i) const // Получение i-ой координаты. { return m_pVec[i]; } void Set(const size_t i, // Изменение i-ой координаты. const double x) { m_pVec[i] = x; } size_t GetDim() const // Получение размера. { return m_Dim; } void Show() const; // Вывод вектора. friend mystring Vct2str(const Vector &); }; //создать в обоих классах дружественные функции //кароче будет чар строка, оттуда достать все числа с помощью функции атоф // и записать их в одномерный массив. //из одномерного массива сделать си строку типа чар mystring Vct2str(const Vector &M) { mystring res; sprintf(res.input_str,"%d",M.m_pVec); //strcpy(res.input_str, static_cast<char>(M.m_pVec)); return res; } Vector str2Vct(const mystring &str) { char *s, *news; int k(0), i(0), j(0), g, l; Vector res; s = str.input_str; while(s[i] != '\0') { news = ""; while(s[i] != ' ' && s[i] != '\0') news[j++] = s[i++]; res.m_pVec[k++] = atof(news); } return res; } void main() { setlocale(0, ""); char g = 'g'; mystring a('4'); mystring b("96565"); cout<<a<<endl; cout<<b<<endl; if (a==b) cout<<"они равны"<<endl; else cout<<"не равны"<<endl; b.cpy1(g,3); cout<<b<<endl; cout<<b.get1(b,3)<<endl; _getch(); } mystring::mystring() { if(!(input_str = new char[1])) exit(-1); input_str[0]= '\0'; } mystring::mystring(char inp) { if(!(input_str = new char[2])) exit(-1); input_str[0] = inp; input_str[1] = '\0'; } mystring::mystring(char *inp) { int n = strlen(inp); if(!(input_str = new char[n+1])) exit(-1); strcpy(input_str, inp); } mystring::mystring(const mystring &p) { int n = strlen(p.input_str); if(!(input_str = new char[n+1])) exit(-1); strcpy(input_str, p.input_str); } int mystring:: operator==(const mystring &pp) { return (strcmp(input_str, pp.input_str) == 0); } mystring::~mystring() { delete [] input_str; cout<<"сработал деструктор"<<endl; } void mystring::cpy(char *inp) { int n = strlen(inp) + strlen(input_str); char *new_str = new char[n+1]; strcmp(new_str, input_str); strcmp(new_str, inp); input_str = new_str; } void mystring::cpy1(char inp, int ch_sym) { int n = strlen(input_str); if(!(ch_sym > n)) { input_str[ch_sym] = inp; } else { cout<<"не правильно задано число которое нужно менять"<<endl; } } char mystring::get1(char *inp, int ch_sym) { int n = strlen(input_str); if(!(ch_sym > n)) return input_str[ch_sym]; cout<<"не правильно задано число буквы, которое нужно выдергивать"<<endl; } ///////////////////////////////////////////////////////////////////////////////////////////////////// Vector::Vector(const size_t Dim, const double *const pVec) : m_Dim(Dim) { if (!m_Dim) { cout << "Ошибка! Неверный размер вектора." << endl; exit(-3); } cout << "Выполняется конструктор класса Vector ..." << endl; if (!(m_pVec = new double[m_Dim])) { cout << "Ошибка! Недостаточно памяти." << endl; exit(-1); } if (pVec) // Заполнение элементов вектора. { size_t i; for (i = 0; i < m_Dim; ++i) m_pVec[i] = pVec[i]; } } Vector::~Vector() { cout << "Выполняется деструктор класса Vector ..." << endl; delete[] m_pVec; } void Vector::Show() const { cout << '('; size_t i; for (i = 0; i < m_Dim; ++i) { cout << m_pVec[i]; if (i < m_Dim - 1) cout << ", "; } cout << ')'; }
Vct2str друг класса Vector, а ты пытаешься получить доступ к закрытым данным класса mystring. str2Vct друг класса mystring, а ты пытаешься получить доступ к закрытым данным класса Vector. дальше не смотрел.
Кто то когда то делал экспертную систему на с++? Если да, то поделитесь исходником, оно то легко но один момент не могу понять. В гугле только одна теория, кода не встречал.
Это вопрос? Можешь так и написать. С++ во многом обратно совместим с С. Ну или как вариант, используя std: Code: std::cout << matr[i][j];
Насколько неправильно везде вместо определения глобальной переменной stdout/stdin использовать GetStdHandle?