Armenian Knowledge Base

Armenian Knowledge Base (https://forum.armkb.com/)
-   C/C++ (https://forum.armkb.com/c-c/)
-   -   __int64 question (https://forum.armkb.com/c-c/13657-__int64-question.html)

Boyov 30.10.2004 16:18

__int64 question
 
Vozmojno li ne peregrujaya "<<" delat' 'cout' peremennuyu kotoraya imeet tip __int64

PHP Code:

main()
{
__int64 a;
cout << a;



AvDav 30.10.2004 16:31

a chto ne kompilitsya? u menya pod vcpp 7.1 idet.
Code:

#include <iostream>
int main()
{
        __int64 a=0x7fffffffffffffff;
        std::cout << a;
        system("pause");
}


Agregat 31.10.2004 06:15

Quote:

Originally Posted by Boyov
Vozmojno li ne peregrujaya "<<" delat' 'cout' peremennuyu kotoraya imeet tip __int64

PHP Code:

main()
{
__int64 a;
cout << a;



1. у main обязательно должен быть возвращаемый тип и он int. Другого по стандарту не дано.
2. Не видно, откуда include - нут cout. Из iostream - a? тогда где std:: или using std::cout?
3. не видно, что за компилятор. я должен из воздуха высасывать эти данные?
4. Учись задавать вопросы. Предлагаю попробовать на EFnet серверах канал #C++ тебя быстро научат всему, что надо (если конечно не забанят за 5 минут).

Boyov 01.11.2004 13:22

Quote:

Originally Posted by Agregat
1. у main обязательно должен быть возвращаемый тип и он int. Другого по стандарту не дано.

soglasis', chto suti dela eto ne menyaet

Quote:

Originally Posted by Agregat
3. не видно, что за компилятор. я должен из воздуха высасывать эти данные?

Tot, kotiriy postavlyaetsya s Visual Studio 6.

Quote:

Originally Posted by Agregat
4. Учись задавать вопросы. Предлагаю попробовать на EFnet серверах канал #C++ тебя быстро научат всему, что надо (если конечно не забанят за 5 минут).

a oni tam vse takie AGResivnie ? :devil: :)

Code:

#include <iostream.h>

int main()
{
    __int64 a = 0xfff;
    cout << a;

  return 0;
}


Agregat 01.11.2004 13:26

1. меняет
2. уже ближе к сути дела
3. напиши, как Давид, если не выйдет снова поговорим.

Boyov 01.11.2004 13:32

Quote:

Originally Posted by Agregat
1. меняет
2. уже ближе к сути дела
3. напиши, как Давид, если не выйдет снова поговорим.

napisal, ne vishlo.

Agregat 01.11.2004 13:37

значти не судьба. __инт64 не поддерживается потоками в 6 ВС. Видишь, как все просто. Я могу сказать, что 8 компилирует.

RAMZES 01.11.2004 13:54

Попробуй поставить последний Мокрософт СДК, у него есть компилятор для 64 бит

RAMZES 01.11.2004 14:04

Хотя если у тебя нет 64 битного виндовса, то и СДК тебе незачем:)
можешь сделать cout по часттям, типа

int i = int_64_variable >> 32;
cout << i;
i = int_64_variable;
cout << i <<endl;

Agregat 01.11.2004 14:16

Quote:

Originally Posted by RAMZES
Хотя если у тебя нет 64 битного виндовса, то и СДК тебе незачем:)
можешь сделать cout по часттям, типа

int i = int_64_variable >> 32;
cout << i;
i = int_64_variable;
cout << i <<endl;

позор.

AvDav 01.11.2004 14:39

semuliroval taki:))
Code:

std::ostream& operator<<(std::ostream &out, __int64 num)
{
        static const char *pdigits="0123456789";
        std::string str;
        if(num<0)
        {
                out << '-';
                num=-num;
        }
        do
                str+=pdigits[num%10];
        while(num/=10);
        std::copy(str.rbegin(), str.rend(), std::ostream_iterator<char>(out, ""));
        return out;
}


Agregat 01.11.2004 15:01

дав,
PHP Code:

std::copy(str.rbegin(), str.rend(), std::ostream_iterator<char>(os"")); 

кроме того я бы советовал ресайзать строчку в начале символов этак на 15, чтоб времени на реаллок не терять вообще.

RAMZES 01.11.2004 15:02

да, забыл сказать - работает только в том случае, если делать output в hex...
типа


__int64 int_64_variable = 1234567898765;
int i = int_64_variable >> 32;
printf("%x", i);
i = int_64_variable;
printf("%x\n", i);

Agregat 01.11.2004 15:08

Quote:

Originally Posted by RAMZES
да, забыл сказать - работает только в том случае, если делать output в hex...
типа


__int64 int_64_variable = 1234567898765;
int i = int_64_variable >> 32;
printf("%d", i);
i = int_64_variable;
printf("%d\n", i);

Ну это вооще позор.
1. не cout
2. печаешь не hex, а десятично... то есть ес кодн ел хеч :)

RAMZES 01.11.2004 15:13

Ну вот, Давид написал умную вещь


All times are GMT. The time now is 15:06.

Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.