| Autor |
Nachricht |
jochen22
Unregistrierter
|
jochen22 Unregistrierter
12:36:51 09.02.2010 Titel: |
#define durch Eingabe definieren |
Zitieren |
Hallo,
wie kann man #define duch Eingabe definieren?
| C/C++ Code: | #define Dateiname "Hier soll die Abfrage rein"
printf("Bitte geben Sie einen Dateinamen an: ");
scanf("%c",&Dateiname);
| |
| C/C++ Code: | #define Dateiname "Hier soll die Abfrage rein"
printf("Bitte geben Sie einen Dateinamen an: ");
scanf("%c",&Dateiname);
| |
| C/C++ Code: | #define Dateiname "Hier soll die Abfrage rein"
printf("Bitte geben Sie einen Dateinamen an: ");
scanf("%c",&Dateiname);
| |
Ist der Ansatz richtig? Was mache ich grundlegend falsch?
DANKE! |
|
|
|
 |
_matze
Mitglied
Benutzerprofil
Anmeldungsdatum: 31.07.2007
Beiträge: 9592
|
_matze Mitglied
12:47:09 09.02.2010 Titel: |
|
Zitieren |
Nein, geht nicht. Ein #define ist nur eine reine Textersetzung. Vor dem Kompilieren wird einfach überall ein Text durch einen anderen Text ersetzt, mehr Magie verbirgt sich nicht hinter #define (außer vielleicht, dass Makro-Parameter noch berücksichtigt werden). Daher kannst du zur Laufzeit nicht nachträglich was in ein #define reinfriemeln, es existiert dann nämlich schon lange nicht mehr. |
_________________ Wie viele atheistische Babys hat man schon aus Versehen - oder gar mit Absicht! - getauft?
|
|
 |
gottschaldt22
Unregistrierter
|
gottschaldt22 Unregistrierter
12:51:39 09.02.2010 Titel: |
|
Zitieren |
Kann ich #define mit deklarierten Variablen ersetzen?
z.B.
| C/C++ Code: | #define Wertannahme wertgegeben
char wertgegeben="test"; | |
| C/C++ Code: | #define Wertannahme wertgegeben
char wertgegeben="test"; | |
| C/C++ Code: | #define Wertannahme wertgegeben
char wertgegeben="test"; | |
Ich muss also aus einer Abfrage, welche Werte liefert, eine Var in #define füllen. Möglich? |
|
|
|
 |
_matze
Mitglied
Benutzerprofil
Anmeldungsdatum: 31.07.2007
Beiträge: 9592
|
_matze Mitglied
13:01:04 09.02.2010 Titel: |
|
Zitieren |
| gottschaldt22 schrieb: | Kann ich #define mit deklarierten Variablen ersetzen?
z.B.
| C/C++ Code: | #define Wertannahme wertgegeben
char wertgegeben="test"; | |
| C/C++ Code: | #define Wertannahme wertgegeben
char wertgegeben="test"; | |
| C/C++ Code: | #define Wertannahme wertgegeben
char wertgegeben="test"; | |
Ich muss also aus einer Abfrage, welche Werte liefert, eine Var in #define füllen. Möglich? |
Nö, geht nicht. Hab ich ja schon versucht zu erklären. Was du mit diesem define erreichst ist, dass an allen Stellen im Quellcode, an denen "Wertannahme" steht, stattdessen "wertgeben" eingesetzt wird (im Anschluss wird der Code übersetzt). |
_________________ Wie viele atheistische Babys hat man schon aus Versehen - oder gar mit Absicht! - getauft?
|
|
 |
gottschaldt22
Unregistrierter
|
gottschaldt22 Unregistrierter
13:05:42 09.02.2010 Titel: |
|
Zitieren |
Genau. Und dass soll durch eine Eingabe variable gemacht werden. Wie z.B. ein Dateiname |
|
|
|
 |
gottschaldt22
Unregistrierter
|
gottschaldt22 Unregistrierter
13:20:57 09.02.2010 Titel: |
|
Zitieren |
Ich habe etwas gefunden, aber wie übersetze ich das auf eine Eingabe?
| C/C++ Code: | 1 2 3 4 5 6 7 8 9 | 1 2 3 4 5 6 7 8 9 | #define NoCopyAble(Class) Class(Class const&); Class& operator=(Class const&);
class Foo
{
private:
NoCopyAble(Foo);
public:
//...
};
| |
| C/C++ Code: | 1 2 3 4 5 6 7 8 9 | #define NoCopyAble(Class) Class(Class const&); Class& operator=(Class const&);
class Foo
{
private:
NoCopyAble(Foo);
public:
//...
};
| |
| C/C++ Code: | 1 2 3 4 5 6 7 8 9 | #define NoCopyAble(Class) Class(Class const&); Class& operator=(Class const&);
class Foo
{
private:
NoCopyAble(Foo);
public:
//...
};
| |
|
|
|
|
 |
gottschaldt22
Unregistrierter
|
gottschaldt22 Unregistrierter
13:54:21 09.02.2010 Titel: |
|
Zitieren |
In meinem C Buch steht das mit ints drin, aber ich bekomme es einfach nicht hin..
Es geht aber jeden fall! |
|
|
|
 |
SG1
Mitglied
Benutzerprofil
Anmeldungsdatum: 19.03.2001
Beiträge: 2438
|
SG1 Mitglied
14:03:22 09.02.2010 Titel: |
|
Zitieren |
| gottschaldt22 schrieb: | | Es geht aber jeden fall! |
Aha. Ähh... Nein. |
|
|
|
 |
Genmutant
Mitglied
Benutzerprofil
Anmeldungsdatum: 08.05.2009
Beiträge: 132
|
Genmutant Mitglied
14:03:46 09.02.2010 Titel: |
|
Zitieren |
Das is doch sowas von kein C... |
|
|
|
 |
Grafzahl
Unregistrierter
|
Grafzahl Unregistrierter
14:09:44 09.02.2010 Titel: |
|
Zitieren |
Was willst du den überhaupt damit erreichen? Warum so umständlich, wenn du dein gesamtes Vorhaben mitteilst, gibt es sicher eine elegantere Lösung. |
|
|
|
 |
gottschaldt22
Unregistrierter
|
gottschaldt22 Unregistrierter
14:50:00 09.02.2010 Titel: |
|
Zitieren |
Ich habe eine Aufgabe auf, bei der ein Dateiname variabel sein soll (wird abgefragt).
Das Problem ist, dass der verwickt ist. Hier nachfolgende Befehle.
Der Dateiname wird manuell definiert und soll aber als Abfrage gemacht werden. Wie kann ich die Lösung angehen?
#define Dateiname "Dateiname"
#define Dateiname_In Dateiname EXE_Extension
#define Dateiname_Out Dateiname EXE_Extension |
|
|
|
 |
Genmutant
Mitglied
Benutzerprofil
Anmeldungsdatum: 08.05.2009
Beiträge: 132
|
Genmutant Mitglied
14:51:08 09.02.2010 Titel: |
|
Zitieren |
Und wieso willst du das unbedingt mit define machen, und nicht mit Variablen? |
|
|
|
 |
gottschaldt22
Unregistrierter
|
gottschaldt22 Unregistrierter
15:00:32 09.02.2010 Titel: |
|
Zitieren |
Wie geht es sonst? Mit scanf Dateiname einlesen geht nicht |
|
|
|
 |
Bashar
Mitglied
Benutzerprofil
Anmeldungsdatum: 15.05.2001
Beiträge: 16821
|
Bashar Mitglied
15:02:39 09.02.2010 Titel: |
|
Zitieren |
| gottschaldt22 schrieb: | | Wie geht es sonst? Mit scanf Dateiname einlesen geht nicht |
Dann geht es überhaupt nicht.
[Hinweis: Selbstverständlich geht es mit scanf) |
_________________ OSL♥
|
|
 |
gottschaldt22
Unregistrierter
|
gottschaldt22 Unregistrierter
15:03:35 09.02.2010 Titel: |
|
Zitieren |
| C/C++ Code: | char Dateiname[256];
printf("Bitte geben Sie den Namen der Datei an: ");
scanf("%c",&Dateiname); | |
| C/C++ Code: | char Dateiname[256];
printf("Bitte geben Sie den Namen der Datei an: ");
scanf("%c",&Dateiname); | |
| C/C++ Code: | char Dateiname[256];
printf("Bitte geben Sie den Namen der Datei an: ");
scanf("%c",&Dateiname); | |
Was ist hier dran falsch? |
|
|
|
 |
Genmutant
Mitglied
Benutzerprofil
Anmeldungsdatum: 08.05.2009
Beiträge: 132
|
Genmutant Mitglied
15:04:50 09.02.2010 Titel: |
|
Zitieren |
Dass du nur ein Zeichen einliest?
Wie wärs mit
| C/C++ Code: | char Dateiname[256];
printf("Bitte geben Sie den Namen der Datei an: ");
scanf("%s",Dateiname); | |
| C/C++ Code: | char Dateiname[256];
printf("Bitte geben Sie den Namen der Datei an: ");
scanf("%s",Dateiname); | |
| C/C++ Code: | char Dateiname[256];
printf("Bitte geben Sie den Namen der Datei an: ");
scanf("%s",Dateiname); | |
|
|
|
|
 |
gottschaldt22
Unregistrierter
|
gottschaldt22 Unregistrierter
15:06:04 09.02.2010 Titel: |
|
Zitieren |
ich habe das & vergessehn hier zu posten. Oder was meinst Du? |
|
|
|
 |
Genmutant
Mitglied
Benutzerprofil
Anmeldungsdatum: 08.05.2009
Beiträge: 132
|
Genmutant Mitglied
15:07:43 09.02.2010 Titel: |
|
Zitieren |
Ich meine, dass dein Code mit %c genau einen char (ein Zeichen) einliest.
Wobei mir grade auffällt, zur Sicherheit sollte man es so machen:
| C/C++ Code: | | scanf("%255s",Dateiname); | |
| C/C++ Code: | | scanf("%255s",Dateiname); | |
| C/C++ Code: | | scanf("%255s",Dateiname); | |
|
|
|
|
 |
gottschaldt22
Unregistrierter
|
gottschaldt22 Unregistrierter
15:08:44 09.02.2010 Titel: |
|
Zitieren |
Dann kommt folgender fehler
1>d:\xx\xx\xx\xx\main.c(76) : error C2143: Syntaxfehler: Es fehlt ')' vor 'Zeichenfolge' |
|
|
|
 |
Bashar
Mitglied
Benutzerprofil
Anmeldungsdatum: 15.05.2001
Beiträge: 16821
|
Bashar Mitglied
15:18:31 09.02.2010 Titel: |
|
Zitieren |
Das liegt daran, dass in Zeile 76 ein Syntaxfehler ist.
|
_________________ OSL♥
|
|
 |
_matze
Mitglied
Benutzerprofil
Anmeldungsdatum: 31.07.2007
Beiträge: 9592
|
_matze Mitglied
16:14:39 09.02.2010 Titel: |
|
Zitieren |
Anstatt alle 2 Minuten zu posten, solltest du dir deinen Code auch mal zwischendurch ansehen und auf die Fehlermeldungen hören, die sagen dir schließlich, was falsch ist... |
_________________ Wie viele atheistische Babys hat man schon aus Versehen - oder gar mit Absicht! - getauft?
|
|
 |
gottschaldt22
Unregistrierter
|
gottschaldt22 Unregistrierter
16:20:46 09.02.2010 Titel: |
|
Zitieren |
Der Fehler war vorher nicht. |
|
|
|
 |
_matze
Mitglied
Benutzerprofil
Anmeldungsdatum: 31.07.2007
Beiträge: 9592
|
_matze Mitglied
16:25:15 09.02.2010 Titel: |
|
Zitieren |
| gottschaldt22 schrieb: | | Der Fehler war vorher nicht. |
Das ändert nichts. Lerne, die Fehlermeldungen richtig zu interpretieren. Wenn da steht, dass eine Klammer fehlt, dann stimmt das vielleicht sogar. Also guckst du in der Zeile, wo da vielleicht eine Klammer fehlen könnte... |
_________________ Wie viele atheistische Babys hat man schon aus Versehen - oder gar mit Absicht! - getauft?
|
|
 |
Bashar
Mitglied
Benutzerprofil
Anmeldungsdatum: 15.05.2001
Beiträge: 16821
|
Bashar Mitglied
16:27:24 09.02.2010 Titel: |
|
Zitieren |
Zumindest musst du die Zeile und am besten auch noch die Zeile davor posten. Woher soll denn hier einer wissen, was genau da in Zeile 76 falsch ist? |
_________________ OSL♥
|
|
 |