| Autor |
Nachricht |
uwie
Mitglied
Benutzerprofil
Anmeldungsdatum: 06.05.2012
Beiträge: 2
|
uwie Mitglied
11:31:54 06.05.2012 Titel: |
scanf und struct als zeiger |
Zitieren |
Hallo Forumianer,
ich verzweifle ..!!.. Folgendes SCANF in der eingabe-Funktion ändert einfach die Werte im Struct nicht. Lt. diversen Anleitungen im Netz und Büchern sollte es aber so funktionieren. Was mache ich falsch?
| C++: | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | #include "stdafx.h"
#include <conio.h>
struct komplex
{
double t1;
double t2;
};
void ausgabe(struct komplex z)
{
printf("Eins: %f",z.t1);
printf("\nZwei: %f",z.t2);
}
void eingabe(struct komplex *z)
{
printf("Eins eingeben: ");
scanf("%f",&z->t1);
printf("\Zwei eingeben: ");
scanf("%f",&z->t2);
}
int _tmain(int argc, _TCHAR* argv[])
{
komplex z1;
eingabe(&z1);
ausgabe(z1);
getch();
} | |
Vielen Dank für euere Mühe im voraus!
Gruß
Uwe |
|
|
|
 |
icarus2
Mitglied
Benutzerprofil
Anmeldungsdatum: 20.09.2009
Beiträge: 1359
|
icarus2 Mitglied
11:37:01 06.05.2012 Titel: |
|
Zitieren |
Versuchs mal mit
| C++: | 1 2 3 4 5 6 7 8 9 10 11 12 13 | void ausgabe(struct komplex z)
{
printf("Eins: %lf",z.t1);
printf("\nZwei: %lf",z.t2);
}
void eingabe(struct komplex *z)
{
printf("Eins eingeben: ");
scanf("%f",&z->t1);
printf("\Zwei eingeben: ");
scanf("%f",&z->t2);
} | |
Du liest da einen double Wert ein und gibst einen double Wert aus. Dann brauchst du "lf" und nicht "f". |
|
|
|
 |
314159265358979
Mitglied
Benutzerprofil
Anmeldungsdatum: 09.03.2010
Beiträge: 4658
|
314159265358979 Mitglied
11:37:10 06.05.2012 Titel: |
Re: scanf und struct als zeiger |
Zitieren |
| uwie schrieb: | | Was mache ich falsch? |
Du lernst C. |
|
|
|
 |
Unregistrierter
|
Unregistrierter
11:57:56 06.05.2012 Titel: |
|
Zitieren |
Macht man bei uns so.
Edit: Nein, bei uns gibt es natürlich schon eine Klasse std::complex ^^ (Aber auf dein Problem bezogen) |
Zuletzt bearbeitet von Unregistrierter am 11:58:43 06.05.2012, insgesamt 1-mal bearbeitet |
|
 |
uwie
Mitglied
Benutzerprofil
Anmeldungsdatum: 06.05.2012
Beiträge: 2
|
uwie Mitglied
12:05:29 06.05.2012 Titel: |
|
Zitieren |
| icarus2 schrieb: |
Du liest da einen double Wert ein und gibst einen double Wert aus. Dann brauchst du "lf" und nicht "f". |
Danke icarus2 für die superschnelle Antwort. Manchmal ist ein zusätzliches Augenpaar eben Gold wert.
Thx Uwe |
|
|
|
 |
C++ Forumbot
Forumbot
Benutzerprofil
Anmeldungsdatum: 29.02.2004
Beiträge: 17122
|
C++ Forumbot Forumbot
12:24:25 06.05.2012 Titel: |
|
Zitieren |
|
 |
SeppJ
Moderator
Benutzerprofil
Anmeldungsdatum: 10.06.2008
Beiträge: 17992
|
SeppJ Moderator
12:27:26 06.05.2012 Titel: |
|
Zitieren |
| uwie schrieb: | | icarus2 schrieb: |
Du liest da einen double Wert ein und gibst einen double Wert aus. Dann brauchst du "lf" und nicht "f". |
Danke icarus2 für die superschnelle Antwort. Manchmal ist ein zusätzliches Augenpaar eben Gold wert. | Das sieht dein Compiler auch. Du musst ihm bloß sagen, dass er dich auch warnen soll, wenn ihm etwas komisch vorkommt. Compiliere immer mit maximaler Warnstufe, behandle als Anfänger Warnungen wie Fehler.
Ich wette icarus2 hat den Fehler so schnell gefunden, da er deinen Code einfach mal bei sich mit hoher Warnungsstufe compiliert hat.
edit: Jetzt habe ich deinen Thread nach C verschoben, da er aussah wie C. Ein winzigkleines Details an deinem Code funktioniert so aber nur in C++. Sei dir darüber im klaren, dass C und C++ sehr unterschiedliche Sprachen sind. Benutze für C auch einen C-Compiler! Mischen von C und C++ ist auch eine ganz schlechte Idee, sofern man sich nicht sehr genau auskennt (und wenn man sich so gut auskennt, dann macht man es sowieso nicht mehr). |
_________________ Du brauchst Hilfe?, Buchempfehlungen für C++,
Wie man in Fragen den richtigen Code postet,
The Definitive C++ Book Guide and List
Zuletzt bearbeitet von SeppJ am 12:31:50 06.05.2012, insgesamt 1-mal bearbeitet |
|
 |
DirkB
Unregistrierter
|
DirkB Unregistrierter
12:59:50 06.05.2012 Titel: |
|
Zitieren |
| SeppJ schrieb: | | Ich wette icarus2 hat den Fehler so schnell gefunden, da er deinen Code einfach mal bei sich mit hoher Warnungsstufe compiliert hat. |
Meinst du echt, er hat dafür extra den Compiler angeschmissen?
Da schaut man doch als erstes nach. Schon alleine bei dem Titel. |
|
|
|
 |
|
Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben. Sie können auf Beiträge in diesem Forum antworten. Sie können Ihre Beiträge in diesem Forum nicht bearbeiten. Sie können Ihre Beiträge in diesem Forum nicht löschen. Sie können an Umfragen in diesem Forum nicht mitmachen.
|
|
|
|
|