größte Zahl in einer Textdatei ermitteln
-
mngbd schrieb:
metapoint2011 schrieb:
habe nix verändert ausser das main usw.. weggelassen da der code nur eingebaut wird.
Da bau ich für dich ein lauffähiges Programm, und du probierst es nichtmal aus, ohne es zu verändern? Ich geb's auf.
das programm macht einfach nicht das was ich möchte.
ich möchte die größte zahl wissen, ohne zu wissen wie viele drin sind.
und mit deim base = 10; tust du ja schon vorraussetzen das man wissen muss wieviel dadrinne ist.
-
metapoint2011 schrieb:
ich möchte die größte zahl wissen, ohne zu wissen wie viele drin sind.
Genau das tut mein Programm.
metapoint2011 schrieb:
und mit deim base = 10; tust du ja schon vorraussetzen das man wissen muss wieviel dadrinne ist.
Nein, das ist die Basis des Zahlensystems. Hab ich aber auch schon gesagt.
Und jetzt: EOD.
-
Vicious Falcon schrieb:
Übrigens: Welcher Compiler beim MSVS zum Einsatz kommt, hängt einzig und allein von der Dateiendung der Dateien ab (*.c -> C-Compiler, .cpp/.cc etc. C++-Compiler).
Unsinn.
Dazu gibt es die Optionen /TP /TC, welche auch über Projekteigenschaften erreichbar sind.
-
Da haben wir es doch schon: Schreib die Einträge einfach untereinander in die Datei und lese zeilenweise ein:
FILE* f = fopen("text.txt","r"); char line[100]; if(f) { while(fgets(line,100,f)) { SendDlgItemMessage(hwnd,ID_DES_CTRLS,LB_ADDSTRING,0,(LPARAM)line); } fclose(f); }
Aufbau der Datei dann
Wort1 Wort2 Wort3 ...
Edit: @wutz: Wo denn da genau?
-
Vicious Falcon schrieb:
[/cpp]SendDlgItemMessage(hwnd,ID_DES_CTRLS,LB_ADDSTRING,0,(LPARAM)line);[/cpp]
Wollt ihr das nicht im Windows-Forum besprechen?
-
Kommt es dir wirklich auf die Zahl an oder brauchst du nur die Anzahl der Zeilen in der Datei?
-
brauche nur die größte zahl... mehr nicht.
die muss dann noch -1 gerechnet werden. aba das is ja einfach.
var-1; oder nicht?
-
Vicious Falcon schrieb:
Edit: @wutz: Wo denn da genau?
Bei VS 2008 Express:
Eigenschaften / Konfigurationseigenschaften / C/C++ / Erweitert --> Kompilierungsart
-
Leute ich hab jetzt den Fehler gefunden.. am ende vom code:
max = (number);
musste es so dastehen:
max = (number-1);
ich habe danach minus 1 gerecht.
also max-1
was der compilier irgentwie nicht gemacht hat.
hatte aber auch garkeine fehlermeldung ausgegeben.
-
also danke nochmal an mngbd
sorry das ich dich jetzt so verärgert habe
aba wenn der kein fehler anzeigt, weiss ich ja auch nicht
-
metapoint2011 schrieb:
also danke nochmal an mngbd
sorry das ich dich jetzt so verärgert habe
Schon vergessen.
-
das is gut
das mit dem base muss ich mir jetzt mal genau angucken
-
metapoint2011 schrieb:
die muss dann noch -1 gerechnet werden. aba das is ja einfach.
var-1; oder nicht?
Man sieht schon. Ein echtes Wolf-Opfer. Nicht einmal eins abziehen bekommen sie richtig hin.
Empfehlung: Buch sofort wechseln. Alles vergessen. Anderes Buch von vorne beginnen.
-
SeppJ schrieb:
Anderes Buch von vorne beginnen.
Das klingt wie eine vernünftige Idee.
-
ja mach ich auch.. bestell mir direkt heute eins. wollte ich gestern schon machen.
-
Belli schrieb:
Vicious Falcon schrieb:
Edit: @wutz: Wo denn da genau?
Bei VS 2008 Express:
Eigenschaften / Konfigurationseigenschaften / C/C++ / Erweitert --> KompilierungsartJa, danke, habe ich übersehen. Der Schalter wurde wohl in der 2003er Version eingeführt.
Ich muss aber dazu sagen , dass ich mein letzes WinAPI-Projekt mit C noch mit VS6 erstellt habe.
-
da bin ich nochmal.
unzwar hab ich jetzt den inhalt der datei geändert.
von z.b: 01 - Mustermann, Max; 02 - Mustermann, Moritz; <<< 1.
auf z.b: 01;Mustermann, Max;02;Mustermann, Moritz; <<< 2.
jetzt möchte ich dort die größte zahl herrausfinden.
bei 1. war der code so
for (char *token = strtok_s(cList, delims, &zeiger1); token != NULL; token = strtok_s(NULL, delims, &zeiger1)) { char *end; long number = strtol(token, &end, base); if (end == token) continue; if (number > max) max = (number); }
wie muss ich den jetzt umändern, das es wieder funktoniert.
habs nicht hinbekommen.
-
keiner?
-
Du hast die vorigen Hinweise nicht beachtet und schraubst immer noch an deinem suboptimalen Code herum.
Der Code ist für den Anwendungsfall suboptimal, da es kürzere, robustere standardkonforme Lösungen für den Fall gibt. Dazu zählen z.B. fgets/sscanf oder von mir aus auch fscanf.
-
metapoint2011 schrieb:
wie muss ich den jetzt umändern, das es wieder funktoniert.
habs nicht hinbekommen.
Du gibst nur Codefragmente an, bei denen man noch nicht mal alle Parameter kennt und erwartest Auskunft?
Schau dir doch mal delims an. Da stehen die Trennzeichen drin.