String auf Zahlen überprüfen. Wie geht das?

Hi Davicito,

Das Problem bei deinen Postings ist, dass du einen Artikel in Wikipedia, der einfach die Features von Java auflistet nimmst und davon ausgehst, dass all dies in C++ kein Pendant hat (da du die Sprache halt einfach (noch) nicht beherrscht). Leider stimmt das hinten und vorne nicht, wie du ja jetzt schon bei der Garbage Collection gesehen hast. Das gleiche gilt auch für Parallelisierung. Du solltest dir vielleicht auch mal den Artikel zum kommenden neuen C++-Standard (C++0x) anschauen, ich denke das dürfte für dich ganz aufschlussreich sein.

Ich für meine Teil würde nicht sagen, dass eine der beiden Sprachen rückschrittlicher oder schlechter ist, sie sind beide etwa auf dem gleichen Level und geben sich nichts.

Gruss
Muepe
 
Gut, ich bin verboHrt.
Das du den Text kopiert hast war mir schon klar

Ich hab die obigen Punkte übrigens nicht geschrieben, um dir meine Meinung aufzuzwingen oder dich zu ärgern, sondern weil ein Teil deiner Argumente nur halbrichtig und ein Teil einfach falsch war.

zB das C für Multithreadprogramme ungeeignet ist.
Was ist das hier dann?
http://msdn.microsoft.com/en-us/library/ms682453(v=vs.85).aspx
CreateThread Function. Aufrufbar aus C und C++.

Und da ist es mir egal, ob das auf Wikipedia steht. Es ist einfach falsch.
Es gibt zwar keine plattformunabhängigen Threadfunktionen,
aber die Sprache ist deswegen nicht ungeeignet.
Und die PF-Unabhängigkeit wird im Threadbereich mit dem kommenden Standard Realität

Zu deinen Vorlesungen: Hast du fertig studiert?
Wenn ja, warum gibts hier so Fragen wie "Java: Was ist ein Konstruktor" und Listen in C?
 
Ich wollte mal nen Kommentar zur eigentlichen Frage los werden: getopt() funktioniert mit gcc prima. Dazu noch atoi() aus den ISO-Funktionen dürften sogar in so ziemlich allen C-Libraries vorhanden sein. Für getopt() gibts für MS-Compiler auch Implementierungen.

Im übrigen: Ohne C-Threads gäbe es auch in Java keine ;-)
 
@Davicito
Wurde das Problem "String auf Zahlen überprüfen. Wie geht das?" gelöst oder nicht?

Und weil ich gerade so in Offtopic-Laune bin:
Wenn du doch weisst, was ein Rückschritt ist (wobei ich eher glaube, dass du mit dem komplexeren C/C++ schlicht und einfach überfordert bist), was ist denn, wenn man von C/C++ auf Java wechselt? Genau, auch ein Rückschritt. Also hör auf zu sagen, C/C++ sei eine schlechte Sprache, die tot ist (was alle C/C++ Programmierer hier im Forum sicher bestätigen werden).

@sheel
Die Leistung und Geschwindigkeit der C-Sprachen ist sicherlich besser als die von Java, aber Java hat auch Vorteile, die C nicht hat, sonst gäbe es Java ja nicht :-)

Gruss
cwriter
 
Die Leistung und Geschwindigkeit der C-Sprachen ist sicherlich besser als die von Java, aber Java hat auch Vorteile, die C nicht hat, sonst gäbe es Java ja nicht :-)

Als C-Fan (C++ mag ich eher nicht) muss ich Java zugestehen, insgesamt etwas mehr auf Konfiguration als auf Coding wert zu legen. Alleine die mannigfaltigen Möglichkeiten, Annotations zu verwenden ist schon ne feine Sache.

In Java programmiert man weniger, man konfiguriert mehr. Siehe Spring Framework. X-tausend Konfigflags und man hat eine RMI-App ohne gleich 2000LOC zu tippen. Ich wüsste nicht, wie man das in C++ geschweige denn C machen kann. Dafür hat man dort einfach Kontrolle über den Code, es geschehen nicht so viele magische Dinge, die man sich nicht so recht erklären kann.

Fazit: In C sieht man bei guten Code auf Anhieb, was passiert, mit allen Schichten inkl. IPC. Bei Java muss man sich durch Konfigfiles wursteln macht aber weniger Fehler bei Implementierungen - ist ja alles generiert ;-)

Zu Sachen Performance will ich jetzt mal nichts sagen. Es gibt x-tausend Beweise, das C/++ schneller ist (und auch sein muss) und bestimmt genauso viele Meinungen dagegen.
 
Zu Sachen Performance will ich jetzt mal nichts sagen. Es gibt x-tausend Beweise, das C/++ schneller ist (und auch sein muss) und bestimmt genauso viele Meinungen dagegen.
Es gibt einen Unterschied zwischen "meinen" und "beweisen". Also lese ich da raus, dass du zur C-Pro Gruppe gehörst :-)
Es ist auch fraglich, ob man lieber programmiert oder konfiguriert. Aber genau die Unterschiede zwischen den Sprachen macht die Arbeit mit dem Computer ja so Spass: Man hat fast unendlich viele Möglichkeiten der Sprachtypen, von Textorientiert bis zu Scratch (http://www.scratch.mit.edu), wo man einfach farbige Blöcke in die richtige Reihenfolge ziehen kann.
Lange Rede kurzer Sinn: Jede Sprache hat vor und Nachteile, einge sind einfach weiter verbreitet als andere und es gibt auch keine toten Sprachen (bsp. FORTRAN).

Gruss
cwriter
 
Kurze Verständnisfrage zu sscanf.

mein variable option vom typ char* besitzt den Ausdruck "-w=5"
um den String und die Zahl in eine Zahlenwariable typ int und den String "-w=" in eine Stringvariable zu splitten muss ich doch nur sscanf(option,"%s=%d", zeichen, &zahl); angeben, oder?

sprich
C:
void print_all(node* list, void* (*get)(void*), FILE* file2, char* option)
{
...
int zahl = 0;
char* zeichen = NULL;
...
sscanf(option,"%s %d", zeichen, &zahl);
printf("\nZahl: %i String: %s\n", zahl, zeichen);
...
}

funktioniert so aber nicht
Zahl bleibt 0 und zeichen NULL
 
Zuletzt bearbeitet:
Das ist korrekt. Prüfst du denn überhaupt den Rückgabewert von sscanf? (Info: Du hast 2 (bzw 3, wenn man den Folgefehler mitrechnet) Fehler in deinem Code)
 
meine sscanf liefert den Wert 0 zurück. Was eigentlich ein Fehler bedeutet.
Wenn ich sscanf(option, "-w=%d", &zahl) angebe, liefert er mir die Zahl aus der Variable "option".

warum klappt das dann nicht mit sscanf(option,"%s %d", zeichen, &zahl); ?
 
Frage dich folgendes:
Entspricht -w=2 dem Pattern "%s %d"?

Und eine andere Frage:
In welchen Speicher soll denn der Teil von %s bitte gepspeichert werden?
 
Zurück