Armenian Knowledge Base  

Go Back   Armenian Knowledge Base > Technical sections > Languages, Compilers, Interpreters > C/C++
Register

Reply
 
LinkBack Thread Tools
Old 30.10.2004, 17:18   #1
4294967296
 
Boyov's Avatar
 
Join Date: 03 2002
Location: /proc/1
Age: 32
Posts: 379
Downloads: 4
Uploads: 0
Reputation: 0 | 0
Default __int64 question

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

PHP Code:
main()
{
__int64 a;
cout << a;

Reply With Quote
Old 30.10.2004, 17:31   #2
The untouchable
 
AvDav's Avatar
 
Join Date: 07 2004
Location: Secret thoughts
Age: 36
Posts: 3,402
Downloads: 22
Uploads: 0
Reputation: 222 | 3
Default

a chto ne kompilitsya? u menya pod vcpp 7.1 idet.
Code:
#include <iostream>
int main()
{
	__int64 a=0x7fffffffffffffff;
	std::cout << a;
	system("pause");
}

Last edited by AvDav; 30.10.2004 at 18:03.
Reply With Quote
Old 31.10.2004, 06:15   #3
Грустно...
 
Agregat's Avatar
 
Join Date: 08 2002
Location: Там, где всегда идут дожди
Age: 35
Posts: 21,717
Downloads: 2
Uploads: 0
Reputation: 250 | 7
Default

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 минут).
Reply With Quote
Old 01.11.2004, 13:22   #4
4294967296
 
Boyov's Avatar
 
Join Date: 03 2002
Location: /proc/1
Age: 32
Posts: 379
Downloads: 4
Uploads: 0
Reputation: 0 | 0
Default

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 ?

Code:
#include <iostream.h>

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

  return 0;
}
Reply With Quote
Old 01.11.2004, 13:26   #5
Грустно...
 
Agregat's Avatar
 
Join Date: 08 2002
Location: Там, где всегда идут дожди
Age: 35
Posts: 21,717
Downloads: 2
Uploads: 0
Reputation: 250 | 7
Default

1. меняет
2. уже ближе к сути дела
3. напиши, как Давид, если не выйдет снова поговорим.
Reply With Quote
Old 01.11.2004, 13:32   #6
4294967296
 
Boyov's Avatar
 
Join Date: 03 2002
Location: /proc/1
Age: 32
Posts: 379
Downloads: 4
Uploads: 0
Reputation: 0 | 0
Default

Quote:
Originally Posted by Agregat
1. меняет
2. уже ближе к сути дела
3. напиши, как Давид, если не выйдет снова поговорим.
napisal, ne vishlo.
Reply With Quote
Old 01.11.2004, 13:37   #7
Грустно...
 
Agregat's Avatar
 
Join Date: 08 2002
Location: Там, где всегда идут дожди
Age: 35
Posts: 21,717
Downloads: 2
Uploads: 0
Reputation: 250 | 7
Default

значти не судьба. __инт64 не поддерживается потоками в 6 ВС. Видишь, как все просто. Я могу сказать, что 8 компилирует.
Reply With Quote
Old 01.11.2004, 13:54   #8
VIP Faraon
 
RAMZES's Avatar
 
Join Date: 09 2002
Location: Пески сахары
Age: 35
Posts: 2,895
Downloads: 6
Uploads: 0
Reputation: 0 | 0
Default

Попробуй поставить последний Мокрософт СДК, у него есть компилятор для 64 бит
Reply With Quote
Old 01.11.2004, 14:04   #9
VIP Faraon
 
RAMZES's Avatar
 
Join Date: 09 2002
Location: Пески сахары
Age: 35
Posts: 2,895
Downloads: 6
Uploads: 0
Reputation: 0 | 0
Default

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

int i = int_64_variable >> 32;
cout << i;
i = int_64_variable;
cout << i <<endl;
Reply With Quote
Old 01.11.2004, 14:16   #10
Грустно...
 
Agregat's Avatar
 
Join Date: 08 2002
Location: Там, где всегда идут дожди
Age: 35
Posts: 21,717
Downloads: 2
Uploads: 0
Reputation: 250 | 7
Default

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

int i = int_64_variable >> 32;
cout << i;
i = int_64_variable;
cout << i <<endl;
позор.
Reply With Quote
Old 01.11.2004, 14:39   #11
The untouchable
 
AvDav's Avatar
 
Join Date: 07 2004
Location: Secret thoughts
Age: 36
Posts: 3,402
Downloads: 22
Uploads: 0
Reputation: 222 | 3
Default

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;
}

Last edited by AvDav; 01.11.2004 at 15:13. Reason: ubral lishnee..
Reply With Quote
Old 01.11.2004, 15:01   #12
Грустно...
 
Agregat's Avatar
 
Join Date: 08 2002
Location: Там, где всегда идут дожди
Age: 35
Posts: 21,717
Downloads: 2
Uploads: 0
Reputation: 250 | 7
Default

дав,
PHP Code:
std::copy(str.rbegin(), str.rend(), std::ostream_iterator<char>(os"")); 
кроме того я бы советовал ресайзать строчку в начале символов этак на 15, чтоб времени на реаллок не терять вообще.
Reply With Quote
Old 01.11.2004, 15:02   #13
VIP Faraon
 
RAMZES's Avatar
 
Join Date: 09 2002
Location: Пески сахары
Age: 35
Posts: 2,895
Downloads: 6
Uploads: 0
Reputation: 0 | 0
Default

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


__int64 int_64_variable = 1234567898765;
int i = int_64_variable >> 32;
printf("%x", i);
i = int_64_variable;
printf("%x\n", i);
Reply With Quote
Old 01.11.2004, 15:08   #14
Грустно...
 
Agregat's Avatar
 
Join Date: 08 2002
Location: Там, где всегда идут дожди
Age: 35
Posts: 21,717
Downloads: 2
Uploads: 0
Reputation: 250 | 7
Default

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, а десятично... то есть ес кодн ел хеч
Reply With Quote
Old 01.11.2004, 15:13   #15
VIP Faraon
 
RAMZES's Avatar
 
Join Date: 09 2002
Location: Пески сахары
Age: 35
Posts: 2,895
Downloads: 6
Uploads: 0
Reputation: 0 | 0
Default

Ну вот, Давид написал умную вещь
Reply With Quote
Sponsored Links
Reply

« sexy progress bar | - »
Thread Tools


На правах рекламы:
реклама

All times are GMT. The time now is 02:12.


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