Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 1730 • Страница 40 из 87<  1 ... 37  38  39  40  41  42  43 ... 87  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Member
Статус: Не в сети
Регистрация: 18.11.2002
Откуда: не вернуться
О-ла-ла писал(а):
зачем там знак вопроса и двоеточие

Блин а своими мозгами не понять ?
(я когда первый раз увидел это то тут-же понял без подсказок,
позднее заметил что во многих других языках также)

_________________
Летели гуси-лебеди, а им навстречу - воробьи-пингвины и соловьи-страусы...



Партнер
 

Member
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
это правда? да : нет. Вроде бы все предельно логично, а главное, коротко и красиво :)
Лучше хелпы читать, чем спрашивать на форуме, на экзамене форума рядом не будет и работать потом за вас тоже никто не будет.

_________________
Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)


 

Member
Статус: Не в сети
Регистрация: 01.04.2005
Откуда: Москва-Лубянка
Lord_of_Darkness писал(а):
Лучше хелпы читать, чем спрашивать на форуме

А главное, ответ так получается гораздо быстрее и, как правило, компетентнее))

Добавлено спустя 2 минуты, 19 секунд
Если речь идет о официальной документации, за книжки я не отвечаю))

_________________
AnossovPavel в проекте F@H (TSC!Russia)
退屈な祖父 ¤ παππούς ¤ («клан дедов»)


 

Member
Статус: Не в сети
Регистрация: 18.11.2002
Откуда: не вернуться
Lord_of_Darkness писал(а):
Лучше хелпы читать,

Мне например самому стыдно за некоторые вопросы которые я задал, (могу дать ссылки)
но по моему это перебор (ИМХО) такие люди не должны даже мечтать о том чтоб стать программистами...

_________________
Летели гуси-лебеди, а им навстречу - воробьи-пингвины и соловьи-страусы...


 

Member
Статус: Не в сети
Регистрация: 15.06.2007
Откуда: Одесса
У-у-у, ребятки. Чего же вы такие жестокие-то? Форум программистов для того и создан, что бы помогать другим. Я только начала учить и почти всё не знаю. Сейчас сижу пытаюсь написать программу, которая не выходит, но ни у кого помощи не прощу, потому что интересно самой разобраться. А что бы уметь разбираться - нужно знать что пишешь, хотя вам, великим программерам, виднее... вообщем, спасибо за доброту и ласку, но я впредь буду свои ламерский вопросы задавать по аське, а не тут, что бы вы не позорились видя мои сообщения :)

zauropod'у и armadillo всё равно спасибо) и всё равно я буду учить программирование, хотя вы тут и говорите, что мне даже мечтать об этом нельзя.
Кстати, представляю, если бы на другом форуме, к примеру выбор железа, спросили:
Цитата:
а что лучше 1950ГТ или GeForсe 6200? Вроде о жифорсах говорят, что они для игр лучше и цифры у него побольше, но вот разобраться я в них не могу.

никто, никогда бы не сказал, что тебе комп не нужен, ты масдай и перестань мечтать о играх, такое стыдно спрашивать...

_________________
Ув. модераторы. Прежде, чем наказывать меня за что-то, - посоветуйтесь со мной. Я вам запрещу ;)


 

Member
Статус: Не в сети
Регистрация: 14.01.2004
Откуда: Киев, Украина
В самом деле, народ, чего вы нападаете, если бы так и передавались знания, то программисты давно бы уже вымерли :)

_________________
Ку ку


 

Member
Статус: Не в сети
Регистрация: 18.11.2002
Откуда: не вернуться
Daemon писал(а):
чего вы нападаете

О-ла-ла писал(а):
Чего же вы такие жестокие-то?

Одно дело когда человек спрашивает глупости потому что не дочитал ещё учебник, а другое дело рассматриваемый случай (ответ на который более чем очевиден даже без учебника). Я лично такую конструкцию увидел первый раз в JS много лет назад и сразу понял что она делает. Однако вундеркиндом меня никогда вроде бы не считали, и уж тем более я сам себя таковым не считаю.

_________________
Летели гуси-лебеди, а им навстречу - воробьи-пингвины и соловьи-страусы...


 

Заблокирован
Заблокирован
Статус: Не в сети
Регистрация: 26.07.2006
Только не критикуйте код, все таки черновой вариант...
Кто нибудь знает почему при попытке записи символа в *(resstr + tempy) прога не то что глючит - аж сам борланд вылетает с access violation? Я уже сотню раз проверил - этот адрес указывает на правильное место и в выделенной оператором new памяти... Почему же происходит access violation?
Вот сам код:
Цитата:
#include <conio>
#include <iostream>
#include <strstream>
#include <iomanip>
using namespace std;
////////////////////////////////////////////////////////////////////////////////
class bMoney
{
private:
long double money;
public:
char* ldtoms(long double ld)
{
if(ld > 9999999999999990.00) {return NULL;}
char* const ldstr = new char[20];
ostrstream ustring(ldstr, 20);
ustring << setiosflags(ios::fixed) << setprecision(2) << ld << ends;

int x = (strlen(ldstr) - 3);
int y = x;
if(y % 3 == 0) y = y + (y / 3 - 1); else y = y + (y / 3);
char* const resstr = new char[y + 5];
int tempy = y + 1;
int tempx = x;
while(y > 0)
{
for(int i = 0; i < 3 && y > 0; i++)
{*(resstr + y) = *(ldstr + (x - 1)); x--; y--;}
*(resstr + y) = ','; y--;
}
*resstr = '$';

//*(resstr + tempy) = *(ldstr + tempx); //Здесь трабла. Нельзя писать в *(resstr + tempy). Почему?

cout << *(ldstr + tempx) << ' ' << *(resstr + tempy) << endl;
return resstr;
}
};
////////////////////////////////////////////////////////////////////////////////
int main()
{
long double t = 19789.89;
bMoney b; cout << b.ldtoms(t);
getch();
return 0;
}


 

Advanced member
Статус: Не в сети
Регистрация: 09.03.2004
Откуда: Кишинёв
GrIfFiN7 писал(а):
Только не критикуйте код, все таки черновой вариант...

Как же не критиковать то ... :) ?! Ужас.
Доступ к элементам массива проще и нагаляднее осуществлять через [] . Или это для запутывания врага? К примеру:
Код:
resstr[y--] = ','; // выглядит приятнее чем *(resstr + y) = ','; y--;

const в объявлении указателя лишний. И что должна делать функция?

Не забываем приписывать в конец строки нулевой символ, а то cout выводит много лишнего.

зы: gcc - не вылетает от этого кода.


 

Заблокирован
Заблокирован
Статус: Не в сети
Регистрация: 26.07.2006
mein ну я потом и думал сделать через [], да и лишних переменных там хватает. Но это потом, сейчас сделать что бы просто работало...
Цитата:
gcc - не вылетает от этого кода
gcc это что? В том-то и дело что вылетать вроде не должен, но, вылетает... Я непонимаю в чем дело...
Добавлено спустя 20 минут, 14 секунд
Цитата:
const в объявлении указателя лишний.
Позволю себе не согласиться :) Изменения адреса на который указывает этот указатель происходить не должно... Или const как-то замедляет работу?
Цитата:
Не забываем приписывать в конец строки нулевой символ, а то cout выводит много лишнего.
И что должна делать функция?
Дык дело в том что строку ещё рано заканчивать, да и как туда записать нулевой символ если туда почему-то вообще ничего записываться не хочет.
Функция должна принимать long double и перерабатываеть его в строку на которую возвращать указатель. Переработка заключается в добавлении спереди знака валюты, проставлении запятых каждые 3 символа начаная с младшего числа и добавлении точки с двумя цифрами(копейки) в конце. Вот на запятой-то я и застрял.

Сейчас перезапустил. При попытке записать символ выражением *(resstr + Какой либо инт) вылетает окно с Errorом, и пишет:
Цитата:
Access violation at address 4010AA8C in module 'vcl60.bpl'. Write of address 0000000C.
При нажатии ОК вылетает опять, приходится рубить процесс.
Только сейчас обратил внимание... Почему он пишет на такой странный адрес? Это адрес выделенной программе памяти, или вообще оперативки?


 

Advanced member
Статус: Не в сети
Регистрация: 09.03.2004
Откуда: Кишинёв
GrIfFiN7 писал(а):
Почему он пишет на такой странный адрес? Это адрес выделенной программе памяти, или вообще оперативки?

Так отладкой проверте по какому адресу пишите. В том коде, что вы привели(один в один) нет ошибок. VC и gcc создают код, который не вылетает(запись по указателю resstr происходит нормально). Выделите памяти больше под resstr, а то у вас хитрые подсчёты байт в байт(неизвестно правильные или нет). Да и освобождать память тоже не лишнее. Кстати, в такие функции обычно передают уже выделенный участок памяти.

GrIfFiN7 писал(а):
В том-то и дело что вылетать вроде не должен, но, вылетает... Я непонимаю в чем дело...

ну так "потанцуйте" немного. А то вы сразу: "потом сделаю...", "а разве оно мешает..." :) .


 

Заблокирован
Заблокирован
Статус: Не в сети
Регистрация: 26.07.2006
Цитата:
Так отладкой проверте по какому адресу пишите.
Судя по отладке - адрес правильный...
Цитата:
Выделите памяти больше под resstr, а то у вас хитрые подсчёты байт в байт(неизвестно правильные или нет).
Не могу! Жаба давит! Я так нерничал когда под ldstr 20 байт отвел. :weep: А подсчёты не один раз проверены.
Цитата:
Да и освобождать память тоже не лишнее.
То есть мне нужно написать delete[] указатель? Он сам при выходе из функции не очистится?
Цитата:
Кстати, в такие функции обычно передают уже выделенный участок памяти.
Это задача из книжки, как там написано так и пытаюсь сделать...
Цитата:
ну так "потанцуйте" немного. А то вы сразу: "потом сделаю...", "а разве оно мешает..." :)
Я просто упрямый, сначала хотел так сделать, вот из принципа и пытаюсь... Но видимо придется последовать ващему совету. :bandhead:


 

Advanced member
Статус: Не в сети
Регистрация: 09.03.2004
Откуда: Кишинёв
GrIfFiN7 писал(а):
Не могу! Жаба давит! Я так нерничал когда под ldstr 20 байт отвел.

Так я же говорю про время отладки, чтобы быстрее локализовать проблему. Потом поставите всё как надо.
GrIfFiN7 писал(а):
То есть мне нужно написать delete[] указатель? Он сам при выходе из функции не очистится?

Да, нужно. Причём возвращаемый указатель нужно освобождать после вызова функции и использования результата. А тот же ldstr можно было объявить как:
Код:
char ldstr[20];

тогда память сама освободится.


 

Member
Статус: Не в сети
Регистрация: 17.07.2005
Можно ли как то выделить место под обьявленную структуру не в стеке а в куче?


 

Advanced member
Статус: Не в сети
Регистрация: 09.03.2004
Откуда: Кишинёв
_nic писал(а):
Можно ли как то выделить место под обьявленную структуру не в стеке а в куче?

А в чём проблема? Точно так же как и с любыми другими типами. Использовать new/delete, malloc/free и тд.


 

Member
Статус: Не в сети
Регистрация: 15.11.2003
Откуда: Moscow\Russia
Какой функцией в С можно узнать размер файла?


 

Advanced member
Статус: Не в сети
Регистрация: 09.03.2004
Откуда: Кишинёв
M9IC писал(а):
Какой функцией в С можно узнать размер файла?

Например так:
Код:
long size;
FILE* f = fopen("file","r");
fseek(f,0,SEEK_END);
size = ftell(f) + 1;
fclose(f);

Открываем файл, сдвигаем в конец указатель и выясняем его положение.


 

Member
Статус: Не в сети
Регистрация: 15.11.2003
Откуда: Moscow\Russia
2mein
Спасибо!
Добавлено спустя 12 минут, 3 секунды
А почему нельзя написать так:

Код:
class matrix{
private:
   void* _data;
public:
   matrix  (void* data);
   void*    GetDataP()             {return _data;}
   void   GetNode (int x, int y) {return _data[x][y];} // Компилятор ругается на эту функцию
};


 

Member
Статус: Не в сети
Регистрация: 17.07.2005
mein писал(а):
А в чём проблема? Точно так же как и с любыми другими типами. Использовать new/delete, malloc/free и тд.

Хммм странно пытаюсь сделать так
Код:
struct sockaddr_in *sa=new struct sockaddr_in[128*128];

В ответ получаю
Код:
[C++ Error] pr2.cpp(19): E2294 Structure required on left side of . or .*
[C++ Error] pr2.cpp(20): E2294 Structure required on left side of . or .*
[C++ Error] pr2.cpp(21): E2294 Structure required on left side of . or .*


 

Member
Статус: Не в сети
Регистрация: 14.01.2004
Откуда: Киев, Украина
M9IC ну ты даешь, у тебя же функция значение не возвращает, void тобишь.
_nic стремная запись, если это С, то оператор new в нем нет, если C++, то зачем писать struct?
Код:
sockaddr_in *sa=new sockaddr_in[128*128];
delete[] sa;

_________________
Ку ку


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 1730 • Страница 40 из 87<  1 ... 37  38  39  40  41  42  43 ... 87  >
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan