Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   
Forentreff 2012     
Bücher-Shop mit Amazon (Buchkategorien)C++ : Referenzen zu C++ : C++ Builder : Visual C++ : C# : Java : Spieleprogrammierung : Systemprogrammierung Linux : Software-Entwicklung : .NET : Compilertechnik : Algorithmen & Datenstrukturen : Objektorientierung : Entwurfsmuster : UML : eXtreme Programming : Scrum : Projektmanagement : Software-Testing : Datenbanken : Tom DeMarco : Dilbert : User Friendly
C/C++ Forum :: C (C89 und C99) ::  #define durch Eingabe definieren  
Gehen Sie zu Seite 1, 2, 3  Weiter
  Zeige alle Beiträge auf einer Seite
Auf Beitrag antworten
Autor Nachricht
jochen22
Unregistrierter




Beitrag 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
Beitrag _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




Beitrag 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
Beitrag _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




Beitrag 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




Beitrag 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




Beitrag 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
Beitrag 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
Beitrag Genmutant Mitglied 14:03:46 09.02.2010   Titel:              Zitieren

Das is doch sowas von kein C...
Grafzahl
Unregistrierter




Beitrag 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.
C/C++ Forum :: C (C89 und C99) ::  #define durch Eingabe definieren  
Gehen Sie zu Seite 1, 2, 3  Weiter
Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




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.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info, www.c-sar.de, www.c-plusplus.net und www.baeckmann.de enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.