Hallo an alle. Wie kann ich 16 stellige Zahlenreihen generieren? z.B. angefangen von:
1000000000000000 bis 9999999999999999
es sollen alle zahlen die dazwischen liegen generiert und in eine .txt Datei untereinander gespeichert werden. Die Größe der Datei spielt für mich keine Rolle. Wenn es möglich ist es in c/c++ zu schreiben, dann bitte ich um vorschläge.
Jeder Vorschlag ist gerne gesehen.
Danke schonmal im Voraus
#include
#include
using namespace std;
int main(int argc, \_TCHAR\* argv[])
{
fstream fs("Datei.txt", ios::out, 64);
cout
Ich weiss es ist sehr unsauber ich suche nach einer besseren Lösung aber sie funktioniert.
Eine andere habe ich noch:
#include
#include
using namespace std;
int \_tmain(int argc, \_TCHAR\* argv[])
{
fstream fs("Datei.txt", ios::out, 64);
cout
Da bekommst du allerdings die Werte mit 1e[n] in die Datei geschrieben.
Lg Knerd
Vielen dank. Du hast mir sehr geholfen. Ich brauche die zahlen ausgeschrieben. Ist die erste Variante ausgeschrieben und nicht abgekürzt? Oder werden die Zahlen auch abgekürzt gespeichert?
Hmm…Ich habe es ausprobiert, aber da werden fehler beim Kompilieren angezeigt. Wie kann man das denn in C lösen? Da kenne ich mich wenigstens etwas aus.
Du möchtest gerne alle Zahlen von 1.000.000.000.000.000 bis 9.999.999.999.999.999 in eine Datei schreiben, pro Zeile eine Zahl, richtg?
Das sind 17 (16 Stellen, 1 „newline“) * 1 000 000 000 000 000 Bytes oder auch
17000 TB
Du müsstest also 17000 TB Festplatten kaufen. Pro TB zahlt man derzeit so 50,00 EUR. Selbst bei ordentlichem Rabatt direkt vom Hersteller (bei der Stückzahl sicher kein Problem) wirst Du nicht weniger als 20,00 EUR/Stück hinbekommen.
Macht schonmal 340000 EUR für die Platten.
Ich würde mir also schon Gedanken über die „Dateigröße“ machen, auch wenn Du behauptest, das spiele keine Rolle.
C-Code, um die Zahlenreihe zu generieren ist denkbar simpel:
#include
int main (void)
{
unsigned long int zahl = 1000000000000000;
for (zahl; zahl
Dann compilierst Du das unter "murks" und lenkst die Ausgabe in eine Datei um.
murks \> zahlen.txt
Und dann wartest Du .... und irgendwann drückst Du Strg+C um den Murks abzubrechen, schaust Dir die Datei an und vergisst das Ganze.
Wozu soll die Zahlenreihe denn dienen?
Fragt sich
Fritze
Hallo,
Ich habe geschrieben, dass die Datenmenge mich nicht interessiert, weil ich nicht vorhatte das auch anzuwenden. Mich hat lediglich der Code interessiert.
Das mit dem „murks“ war wahrscheinlich so gemeint das er damit sagen will das der Code murks ist.
Also jag den Code einfach durch deinen Compiler, der Code von mir geht auf jedenfall bei dem anderen weiss ichs nicht.
Lg Knerd
Ich arbeite im Moment ausschließlich mit c…will mich da ersteinmal einarbeiten. ich habe das so für c umgeschrieben und es funktioniert auch, aber ich krig das nicht in ne txt datei. Geht das da auch mit fstream? oder muss ich es anders lösen?
Außerdem sagt mir mein compiler, dass die Zahl für einen
integer zu lang ist.
Darum habe ich die Variable nicht als „int“ sondern als „unsigned long int“ deklariert. Wenn das auf Deinem System (Was für eine PC Architektur mit welchem Betriebssystem und welchem Compiler eigentlich?) noch immer nicht reicht, dann nimm „unsigned long long int“.
Du findest die Beschränkungen für die einzelnen Datentypen in der limits.h Deines C-Compilers.
Wie kompiliere ich das ganze unter „murks“? Welchen Kompiler
muss ich dazu verwenden? Meiner hat das irgendwie nicht
Bei meinem Compiler geht das, wenn ich den Quellcode unter „murks.c“ abgespeichert habe, so:
gcc -o murks murks.c
Mit „murks“ meine ich den Namen, den Dein Programm hinterher haben soll. Du kannst es aber auch sonstwie benennen, es spielt für den Code überhaupt keine Rolle.
Mein Code ist mit jedem ANSI C Compiler übersetzbar, die Größe der Datentypen ist aber vom jeweiligen Betriebssystem und der Zielarchitektur (CPU) abhängig.
Hmm, du hast ein C Programm in eine ausführbare Datei übersetzt (Deiner Ahnungslosigkeit nach vermutlich eine Windows .exe). Diese Datei rufst Du auf der Kommandozeile auf. Wenn Du meinen Code genommen hast, dann siehst Du die Zahlenreihen auf dem Bildschirm.
Man kann jede Bildschirmausgabe in eine Datei umlenken, indem man ein „Größerzeichen“ und den Namen der Datei anhängt. Also:
deine.exe \> zahlen.txt
Danach musst du halt sehr sehr lange warten. Das Programm wird nach einiger Zeit mit der Fehlermeldung, dass die Platte voll ist, abstürzen.
Dann gehst Du los, kaufst die 17.000 Festplatten, baust die zu Deinem Megaspeicher-Array aus und startest das Programm nochmal.
Nach guten drei Jahren hast Du dann auf den 17000 Platten die gewünschte Datei.
…öhm… ich bin mir nicht zu 100% sicher aber es gibt doch
in C den FILE-typ oder so.
Inhalt einer Datei und deren Endung haben nichts mit einander zu tun. Das sieht man unter Windows zwar anders, ist aber trotzdem so. FILE ist kein „Dateityp“, sondern ein Datentyp, der die für die Kontrolle eines Datenstroms notwendige Struktur enthält.
Wenn der Original-Fragesteller eine C-Funktion zum speichern von Daten in eine Datei sucht, dann sollte er sich mal die fprintf Funktion (analog zu printf) anschauen.
Wenn es sowas wie eine Anleitung zu der bisher noch immer unbekannten C Bibliothek gibt, dann sthen da die Details (welche Bibliotheken eingebunden werden müssen, wie man die Funktion aufruft, welche Parameter benötigt und welche Rückgabewerte geliefert werden, etc.