FAQ:ANSI CPP — различия между версиями
Материал из Весельчак У
RXL (обсуждение | вклад) (Ветвление FAQ:ANSI CPP) |
RXL (обсуждение | вклад) м (Ошибки в тегах.) |
||
| Строка 3: | Строка 3: | ||
* [[FAQ:ANSI CPP:динамически задать число знаков после запятой|Как динамически задать число знаков после запятой у float при преобразовании в строку?]] | * [[FAQ:ANSI CPP:динамически задать число знаков после запятой|Как динамически задать число знаков после запятой у float при преобразовании в строку?]] | ||
* [[FAQ:ANSI CPP:задать число знаков после запятой в функции printf|Как задать число знаков после запятой у float в функции printf?]] | * [[FAQ:ANSI CPP:задать число знаков после запятой в функции printf|Как задать число знаков после запятой у float в функции printf?]] | ||
| − | * [[FAQ:ANSI CPP:вывод в файл с помощью fstream|Как всё, что выводится в cout,вывести в файл?] | + | * [[FAQ:ANSI CPP:вывод в файл с помощью fstream|Как всё, что выводится в cout,вывести в файл?]] |
| − | * [[FAQ:ANSI CPP:при вводе текста в переменную считываются только те символы, которые шли до пробела, а необходимо считать всю строку целиком|Как преодолеть такую ситуацию, когда при вводе текста в переменную считываются только те символы, которые шли до пробела, а мне необходимо считать всю строку целиком?] | + | * [[FAQ:ANSI CPP:при вводе текста в переменную считываются только те символы, которые шли до пробела, а необходимо считать всю строку целиком|Как преодолеть такую ситуацию, когда при вводе текста в переменную считываются только те символы, которые шли до пробела, а мне необходимо считать всю строку целиком?]] |
| − | * [[FAQ:ANSI CPP:генерация случайных чисел от 0 до 1|Какую функцию нужно использовать для генерации случайных чисел от 0 до 1?] | + | * [[FAQ:ANSI CPP:генерация случайных чисел от 0 до 1|Какую функцию нужно использовать для генерации случайных чисел от 0 до 1?]] |
===Почему не получается присвоить строку?=== | ===Почему не получается присвоить строку?=== | ||
Версия 21:53, 28 июля 2008
- Не получается сравнить два числа типа double.
- Как задать число знаков после запятой у float при преобразовании в строку?
- Как динамически задать число знаков после запятой у float при преобразовании в строку?
- Как задать число знаков после запятой у float в функции printf?
- Как всё, что выводится в cout,вывести в файл?
- Как преодолеть такую ситуацию, когда при вводе текста в переменную считываются только те символы, которые шли до пробела, а мне необходимо считать всю строку целиком?
- Какую функцию нужно использовать для генерации случайных чисел от 0 до 1?
Содержание
- 1 Почему не получается присвоить строку?
- 2 Как из конструктора класса-наследника передать параметры конструктору базового класса?
- 3 как обратиться к переменной или методу базового класса?
- 4 Стандартный генератор псевдослучайных чисел.
- 5 Как проинициализировать статический мембер класса?
- 6 Как задать значение константы в двоичном представлении (т.е. единицами и нулями в виде битового поля)?
- 7 Как можно число, представленное в символьном виде, получить (или преобразовать) в виде целочисленного типа данных? И как представить число в виде массива символов (строки)? (например CString -> int и int -> CString)
Почему не получается присвоить строку?
Например я пишу:
char mess[]=""; ... mess="мой текст";//задаю значение строки MessageBox(hwnd, mess,"Error Message",MB_OK);
Ответ: Массив mess объявлен как
char mess[]="";
то есть всё равно что
char mess[1]='\0';
размер массива равен единице, первый элемент равен 0.
Чтобы присвоить строку, нужно увеличить размер массива (см. пример) и использовать strcpy для копирования содержимого "мой текст" в mess :
char mess[100]; mess[0]=0;//инициализация ... strcpy(mess, "мой текст");
Либо использовать std::string (стандартный класс работы со строками в C++).
Как из конструктора класса-наследника передать параметры конструктору базового класса?
//базовый класс
class parent
{
public:
parent(int n)
{
}
};
//наследник
class child: public parent
{
child(int n,double d): parent(n)
{
}
};
как обратиться к переменной или методу базового класса?
если не вдаваться в права доступа (public,private,protected), то так <имя_базового_класса>::переменная; <имя_базового_класса>::метод();
class Cbase
{
protected:
int metod()
{
return 1;
}
};
class Cchild:public Cbase
{
int metod()
{
return 5;
}
void example()
{
int n;
//вызов Cchild::metod()
n=metod();
//вызов Cbase::metod()
n=Cbase::metod();
}
};
Стандартный генератор псевдослучайных чисел.
Алгоритм генератора псевдослучайных чисел, который поставляется вместе с стандартными библиотеками С
#define RAND_MAX 32767
unsigned long next=1;
int rand(void) {
next=next*1103515245+12345;
return((unsigned int)(next/65536)%32768);
}
void srand(unsigned int seed) {
next=seed;
}
Источник: http://algolist.manual.ru/maths/generator/standard.php
Как проинициализировать статический мембер класса?
class A
{
const static int m_n;
const static int m_Arr[];
};
const int A::m_n=0;
const int A::m_Arr[] ={1, 2, 5, 10, 20};
Как задать значение константы в двоичном представлении (т.е. единицами и нулями в виде битового поля)?
можно использовать макросы, например:
//МАКРОСЫ ДЛЯ ДВОИЧНЫХ ЧИСЕЛ //байт #define _b8(b) ((BYTE)(\ (b&0x10000000?0x80:0)|(b&0x01000000?0x40:0)|\ (b&0x00100000?0x20:0)|(b&0x00010000?0x10:0)|\ (b&0x00001000?0x08:0)|(b&0x00000100?0x04:0)|\ (b&0x00000010?0x02:0)|(b&0x00000001?0x01:0))) //слово #define __b16(b16) ((WORD)((_b8(((unsigned __int64)b16)>>32)<<8)|(_b8(b16)))) //двойное слово #define __b32(b16H,b16L) ((DWORD)(((__b16(b16H))<<16)|(__b16(b16L)))) //пример: BYTE by; by=_b8(0x01010110);// ==0x56 by=_b8(0x111);// ==7 WORD w; w=__b16(0x0111011011010011);//==0x76d3 DWORD dwd; dwd=__b32(0x0101010110110011,0x0101111011010001);//==0x55B35ED1 dwd=__b32(0x1000101110101010,0x11010101);//==0x8BAA00D5
Как можно число, представленное в символьном виде, получить (или преобразовать) в виде целочисленного типа данных? И как представить число в виде массива символов (строки)? (например CString -> int и int -> CString)
CString txt;
int n;
...
txt="1234";
n=atoi(txt); //CString -> int
...
n=1234;
txt.Format("%d",n);// int -> CString