Krieg Fehler: empty character .. nicht weg

Mairhofer

Erfahrenes Mitglied
Tag zusammen!

Ich bin dabei ein Browsergame zu programmieren mit PHP und wöchentliche Berechnungen, die Ressourcenintensiver sind in C#.
Das Berechnen in C# ist doch notwendig, da PHP zu sehr das System auslastet/auslasten wird.

In PHP habe ich gute Vorkenntnis.
Ich hab nur leiche Grundbildung in C++ durch den Berufsschulunterricht und musste mit Schrecken feststellen, das C# anders "funkntioniert".

Ich habe mir das Beispiel von http://pronix.de mehrmals durchgelesen und auch in diversen anderen Foren nach etwas für mich brauchbaren gesucht.

Das Beispiel auf der oben genannten Seite ist für mich das Beste und so habe ich versucht, das für meine Wünsche umzuschreiben.

Doch nur das einfache C&P macht mir schon Probleme.
Ich kompiliere unter Linux mit gcc und beim Kompilieren erhalte ich folgenden Fehler:

test.c:494: empty character constant
von Zeile 493 an steht:
/* newline durch ersetzen */
*ptr = '';
Ich habe versucht, den Zeiger mit *ptr = NULL; oder *ptr = FALSE; zu "nullen" aber no chance. Ich kriege diesen Fehler nicht weg. Kann mir einer einen Tipp geben, damit ich weiter komme?

Den kompletten Source findet man unter: http://pronix.de/modules/C/openbook/c_programmierung_28_2.php#4

Die betroffene Funktion ist:

void print_line(MYSQL_RES *res)
{
MYSQL_FIELD *field;
unsigned int i, j;

mysql_field_seek (res, 0);
/* Erstes Zeichen der Linie */
printf("+");
for (i = 0; i < mysql_num_fields(res); i++)
{
field = mysql_fetch_field(res);
/* max_length '-' Zeichen jeder Spalte ausgeben */
for (j = 0; j < field->max_length + 2; j++)
printf("-");
/* Am Ende der Spalte '+' ausgeben */
printf("+");
}
printf("\n");
}

Danke im Voraus!
 
Danke werd ich mal versuchen.
Meine eigene Lösung mit "einfach mal weglassen" scheint auch zu gehen, aber ist ja nciht Sinn der Sache...
 
Danke!

Ich muss nur direkt ne neue Frage hinterherklatschen.
Ich habe nun die DB ausgelesen und alles in ein Array row[] geklatscht.
row = mysql_fetch_row (res)

nun kann ich mir ja per printf jedes element auslesen lassen, in dem ich in der printf Anweisung row[0], row[1] usw angebe.

Jetzt möchte ich einen Schritt weitergehen und mit diesen Elementen rechnen, zum test einfach mal das Element 1 und 2.
Quasi sowas wie
ergebnis = row[1] + row[2]

ergebnis hab ich als double deklariert, jedoch sind diese row elemente wie in PHP gar nicht so zu nutzen.
Erst dachte ich, das diese des Types char sind und habe mit einer Typumwandlung versicht, damit zu rechnen
ergebnis = (double)row[1]+(double)row[2];

Da hat sich mein Compiler erstmal totgelacht.
Ich weiss, alles das was ich hier mache sind nur spielereien und sehen wahrscheinlich für experten sehr lachhaft aus, aber ich würde das doch gerne schaffen, so ne Art Selbstbefriedigung.
Wenn mir vielleicht jemand einen Tipp, noch besser eine Lösung geben könnte?

Achso, in der Datenbank stehen nur Integer und Double Werte, also ich versuche nicht mit Strings/Chars zu rechnen!
 
In C# gibt es keine Zeiger mehr, da dies nicht dem geist der OOP entspricht, musst dir also was anderes überlegen
Das Beispiel, das er kompiliert ist aber kein C#, sondern C, hinzu kommt das man in C# sehr wohl pointer in einem unsafen Kontext benutzen kann.
ergebnis = (double)row[1]+(double)row[2];
row[1] und row[2] sind vom typ pointer auf char (obwohl ich mich da nicht festlegen will, da ich noch nie mit my sql gearbeitet habe) wenn du die jetzt als double zusammen rechnen willst , musst du : ergebnis = atof(row[1]) + atof(row[2]) schreiben
 
Zurück