Problem mit __int 64

Tobias K.

Erfahrenes Mitglied
moin

Ich hab mehr aus langerweile ein Programm geschrieben das Zahlen überprüft ob sie Primzahlen sind oder nicht und wenn ja sie dann auch in einer Datei abspeichert.
Und da man auch mal zu gößeren Zahlen kommt (und um es einfach mal auszuprobieren) habe ich für meine Variablen den Typ __int64 genommen.

Mit z.B. int hat es noch funktioniert aber jetzt meint er als Fehlermeldung:
'Operator <<' ist mehrdeutig
Und zwar in der Zeile wo die Variable "zahl" in die Datei geschrieben werden soll.

Code:
#include "stdafx.h"
#include <fstream.h>
#include <windows.h>


int main(int argc, char* argv[])
{
	ofstream fout("test.txt");
	bool primzahl=true;
	unsigned __int64 x	= 3;
	unsigned __int64 zahl= 0;
	
	for(zahl=3;; zahl+=2)
	{
		while(x<zahl)
		{
			if((zahl % x) == 0 && x!=zahl)
				primzahl=false;
			
			x+=2;
			
		}
			
		if(primzahl==true)
		{
			fout<< (__int64)zahl;
			fout<<"\n";
		}
		
		x=3;
		primzahl=true;
		Sleep(1);
	}

	return 0;
}


mfg
umbrasaxum
 
Ja das liegt daran das es von ofstream meines wissens keine überladung des << operators für __int64 gibt..

mach es so das du das __int64 zuerst in eine zeichenkette imwandelst und diese in die datei schreibst
Code:
char* zahlString[25];
_i64toa(zahl, zahlString, 10);
fout << zahlString;

so sollte es eigendlich funktionieren
 

Neue Beiträge

Zurück