problem
-
hallo,
ich hätte auch mal ein Problem!
Kann mir einer sagen warum mein Programm nicht läuft?
Kopier jetzt nur das wichtige rein:
Es geht darum dass der Wert für den char nicht ausgegeben wird.char d2[5]="M30";
printf("%c",d2[5]);der schreibt da nur hyrogyphen
danke
-
der der sich blickt schrieb:
hallo,
char d2[5]="M30";
printf("%c",d2[5]);der schreibt da nur hyrogyphen
danke
weil er auf Element 5 zugreift? und dort nichts drinne steht würde ich sagen.
-
die 5 bedeutet doch nur dass ich 5 zeichen schreiben kann oder nicht?
weil char ist normalerweise nur ein zeichen.
-
also folgendes: bei der Deklaration sagst du größe von 5
wenn du ausgibst dann greifst du auf das Element 5 zu.
Bei dir greifst du also auf Element 6 zu weil man von 0 anfängt zu zählen.kommt also nur mist raus.
-
was muss ich denn dann schreiben? dass
M30
nacher da steht?
-
puts( d2 );cheers, Swordfish
-
ders nicht blickt schrieb:
was muss ich denn dann schreiben? dass
M30
nacher da steht?na im grunde reicht doch printf("%s",d2);
EDIT: mist war zu spät

-
danke, aber das funktioniert auch nicht so ganz!
Da bekomm ich andere hyroglyphen
-
das ist doch dasselbe wie vorhin
-
#include <stdio.h> int rechnung(); int main() { char d2[5]="M30"; printf ("%s",d2); getchar; return 0; }und es geht bei mir.
return vergessen
-
Virokams schrieb:
return vergessen
Und auch wenn du es häufig postest:
"int main()" macht von sich aus ein "return 0" wenn du nichts angibst. Da fehlt also noch immer kein return (Und das auch nach AnsiC++ Standard). Ja, dies ist ein Sonderfall, aber es wird dennoch nicht richtiger in dem du darauf rumreitest(Wenn du statt "return vergessen" ein "einheitliches return finde ich schöner" oder ähnliches schreiben würdest, wäre dieser Post hier nicht entstanden).
cu André
P.S: Unabhängig davon das du in einen C++ Forum wohl zumindestens die C++ Headerschreibweise verwenden kannst und dein Code weder legales C noch C++ ist.
-
das geht bei mir auch, nur mein programm ist komplizierter.
da hängt noch ein struct dran!d2[5]=tabelleDIN1449[i].d2[5];
und das ist die zeile ein der tabelle:
{80,130,10.8,"M30"}und dann funktioniert die ausgabe nicht:
printf("d2= %s \n\n",d2);
-
seid ihr jetzt alle ratlos?
bitte helft mir!
-
Du bist aber hastig. Nach kaum 7 Minuten schon nachfragen.

Was meinst du mit funktioniert nicht? Ist das d2 in der struct auch ein char*?
Warum weist du das der lokalen d2-Variable zu?
Das diese Fragen eigentlich ins ANSI-C Forum gehören hatte glaube ich auch schon mal jemand erwähnt.
-
sorry habs eilig!
ja er gibt alles mögliche aus aber nicht das was in der 4.Spalte der Tabelle steht!
Es soll ja nur M30 ausgegeben werden !
Mehr nicht
-
ich hab noch ne globale variable deklariert. die heisst genauso. is vielleicht bisschen verwirrend für euch!
d2=tabelleDIN1449[i].d2[5];
das vorne ist die globale, die nach dem punkt gibt die spalte in der tabelle an. das i gibt die zeile in der tabelle an!
und eben nur die ausgabe ist immer in Hyroglyphen! Auffalend immer dieselben
-
Von welchen Typ ist das globale d2 denn?
Wenn beides char-Arrays sind dann mußt du das so machen.strncpy(d2, tabelleDIN1449[i].d2, 4);Damit wird der String in dein globales Array kopiert. Einfache Zuweisungen funktionieren da nicht.
-
ja sind beides char arrays. aber jetzt kommt dass ich dein
strncpy
nicht deklariert hätte!
-
#include "string.h"
-
du ist der beste!
Vielen Dank!
Ich glaube so sollte man die Aufgabe nicht lösen, aber egal. Ihr habt mir sehr geholfen alle