Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
14.01.2003, 15:00
PhoenixDragon



Hallo Leute !!!
(Hoffe das ihr mir helfen könnt, ich programmiere erst seit einem halben Jahr C++ in der Schule)

Meine Frage:

Wie kann ich mit C++ (UNTER DOS) einen text einpeichern und dann nach einer zeit wieder ausgeben?
Ich mein das so:

Quellcode:cprintf("Was moechten sie am Montag machen? : ");
cin >> m;
Wenn man dann IM PROGRAMM eingibt: Ich moechte am Montag gar nix machen !

Speichert (wegen dem cin >> m;) das dann den Satz (Ich moechte am Montag gar nix machen !) in die Variable m? (ich hab sie so definiert:
Quellcode:long double m = 0;)

Und wie kann ich machen das man dann den Satz (Ich moechte am Montag gar nix machen !) wieder ausgibt?

PS: Ich danke schon im Vorraus auf sinnvolle Hilfe !!!

--

apogryph

zum Seitenanfang zum Seitenende Profil || Suche
001
14.01.2003, 15:22
[RMen]OneStone



Also, ersteinmal solltest du konsequent bleiben und nicht mal nen printf Deriviat und dann mal cin benutzen. Des weiteren kann man das so nicht machen, denn in einen Double kann man keinen Satz einlesen. Der Datentyp den du suchst ist char[], allerdings musst du vorher definieren wieviele Zeichen maximal gespeichert werden können. Diese Angabe wird dann zwischen die [ ] gesetzt. Hier mal nen ordentliches Beispiel:

Quellcode:int main()
{
    char szBuffer[256];

    cout << "Bitte geben sie ein, was sie am Montag machen wollen:\r\n";
    cin >> szBuffer;
    cout << "Sie wollen am Montag also " << szBuffer << ".\r\n";

    return 0x00;
}

--

georg-wicherski@pixel-house.net | http://www.pixel-house.net/ - Coding Resource| http://www.google.de/

zum Seitenanfang zum Seitenende Profil || Suche
002
14.01.2003, 15:36
snoopdog



naja er kan nauch die string klasse benutzen....
und dann wär ja cin und cout wieder praktisch...naja egal

Black,komm mal wieder bei ICQ on...

--

Visit our 500er Gamer Lan
@ www.evil-lanparty.de or
@ www.evil-havoc.com
Visit the HaVoc Lanparty Community
@ www.havoc-lanparty.com

zum Seitenanfang zum Seitenende Profil || Suche
003
14.01.2003, 15:43
PhoenixDragon



danke leute wie gesagt ich bin noch anfänger

--

apogryph

zum Seitenanfang zum Seitenende Profil || Suche
004
14.01.2003, 17:27
Tron



cin >> szBuffer;
das liest nur ein wort ein.

cin.getline(szBuffer, 256);

--

'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams

'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett

zum Seitenanfang zum Seitenende Profil || Suche
005
14.01.2003, 17:52
snoopdog



oder nehmt doch gets

Quellcode:char bla[256];
gets(bla);

*g*

--

Visit our 500er Gamer Lan
@ www.evil-lanparty.de or
@ www.evil-havoc.com
Visit the HaVoc Lanparty Community
@ www.havoc-lanparty.com

zum Seitenanfang zum Seitenende Profil || Suche
006
14.01.2003, 18:59
PhoenixDragon



hmmmm ...
ich hab das programm:
Quellcode:int main()
{
    char szBuffer[256];

    cout << "Bitte geben sie ein, was sie am Montag machen wollen:\r\n";
    cin >> szBuffer;
    cout << "Sie wollen am Montag also " << szBuffer << ".\r\n";

    return 0x00;
}
ausgeführt bin da auf ein problem gestoßen:
Wenn ich jetzt im Programm: "bla bla" schreib dann nimmt er nur das erste bla (also beachtet er nicht die Leertaste !!!)
Ich will aber das er alles nimmt !!!

PS: Ich hab Visual C++ 6.0 glaub aber nicht das es daran liegt

--

apogryph

zum Seitenanfang zum Seitenende Profil || Suche
007
14.01.2003, 19:05
Megge



wieso willst du unbedingt char und nicht string ?

--

zum Seitenanfang zum Seitenende Profil || Suche
008
14.01.2003, 19:11
PhoenixDragon



naja wie gesagt ich bin noch anfänger!

ich weiss nicht genau wie du das mit string meinst!

könntest du mir anhand eines beispiels das erklären bitte

--

apogryph

zum Seitenanfang zum Seitenende Profil || Suche
009
14.01.2003, 19:26
Onkel Dittmeyer



char = ein byte, damit auch nur ein Zeichen
string = Verkettung von chars
Wenn man mit Strings arbeitet nimmt man entweder die Klasse die bereits in der Std Library enthalten ist oder man übergibt einen Pointer auf den ersten Char mit dem man dann auf die nächsten Chars zugreifen kann.
Abgeschlossen wird der String mit \0.
Zu deinem Problem:

Zitat:
Tron
cin >> szBuffer;
das liest nur ein wort ein.
cin.getline(szBuffer, 256);

--

zum Seitenanfang zum Seitenende Profil || Suche
010
14.01.2003, 19:46
PhoenixDragon



danke mann !!!

--

apogryph

zum Seitenanfang zum Seitenende Profil || Suche
011
14.01.2003, 20:39
PhoenixDragon



Noch ne kurze Frage bevor ich verrecke :-D

Kann man irgendwie das geschriebene (ich meine immernoch in DOS) abspeichern (z.B.: in eine .txt datei speichern?) ?

Also wenn ich ins programm schreibe:

Ich will am Montag nix tun !

Kann man das irgendwie speichern und dann wieder wenn man das Programm startet öffnen?

PS: Danke für die Hilfe

--

apogryph

zum Seitenanfang zum Seitenende Profil || Suche
012
14.01.2003, 22:09
snoopdog



ja türlöich geht das,
speichern:

Quellcode:void speichern()
{
      FILE *p_File;
      p_File = fopen("test.txt","w+");
      
      fputs(szbuffer,p_File);
      fclose(p_File);
}

void read()
{
     FILE *p_File;
     p_File = fopen("test.txt","r");
    
     fgets(szbuffer,256,p_File);
    
     printf("%s\n",szbuffer);
     fclose(p_File);
}

vorrausgesetzt szbuffer ist ne globale variabel. D.h. sie ist auerhalb aller funktionen und übner allen funktionen deklariert. oder in ner extra header datei die eingebunden wird

--

Visit our 500er Gamer Lan
@ www.evil-lanparty.de or
@ www.evil-havoc.com
Visit the HaVoc Lanparty Community
@ www.havoc-lanparty.com

zum Seitenanfang zum Seitenende Profil || Suche
013
15.01.2003, 06:31
Tron



wenn du konsequent c++ konstrukte verwenden willst, dann benutz filestreams (header fstream) zum dateizugriff. ( www.cplusplus.com , da gibt's nen tut mit groben ueberblick ueber die wichtigsten sachen, auch dateizugriff)

Zitat:
oder in ner extra header datei die eingebunden wird
variablen in headerdateien definieren ist boese!
nur extern im header und dann weiteres modul mit der defintion der variablen.

--

'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams

'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett

zum Seitenanfang zum Seitenende Profil || Suche
014
15.01.2003, 17:04
[RMen]OneStone



Quellcode:#include <stdio.h>

#define VERSION "v1.0"
#define BUILD "standard, compiled on " __DATE__

char szBuffer[1024];

void SaveActivity()
{
    FILE * pFile;

    if(!(pFile = fopen("save.dat", "wt")))
        return;

    fwrite(szBuffer, 0x01, strlen(szBuffer), pFile);
    fclose(pFile);
}

void LoadActivity()
{
    FILE * pFile;

    if(!(pFile = fopen("save.dat", "rt")))
    {
        strcpy(szBuffer, "file save.dat not found");
        return;
    }

    fread(szBuffer, 0x01, 0x0400, pFile);
    fclose(pFile);
}

int main()
{
    printf("Simple Brainfuck " VERSION ", build " BUILD);
    strcpy(szBuffer, "(leer)");
    printf("szBuffer: %s\n", szBuffer);

    LoadActivity();
    printf("szBuffer: %s\n\n", szBuffer);


    printf("Bitte Aktivitaet eingeben: ");
    scanf("%s", szBuffer);
    printf("szBuffer: %s\n", szBuffer);

    SaveActivity();
    printf("Saved... have a nice day!\n");

    return 0x00;
}
Kein Kommentar - oder muss man da noch was sagen? =]

--

georg-wicherski@pixel-house.net | http://www.pixel-house.net/ - Coding Resource| http://www.google.de/


Dieser Beitrag wurde am 15.01.2003 um 17:35 von [RMen]OneStone bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
015
15.01.2003, 17:11
Tron



ja, sinn?

zudem wird g_szActivity nirgendwo verwendet und szBuffer ist nirgendwo deklariert.

--

'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams

'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett

zum Seitenanfang zum Seitenende Profil || Suche
016
15.01.2003, 17:34
[RMen]OneStone



erm ja, hab wohl halb geschlafen, hab' es jetzt berichtigt.
Sinn: Ausführliches Beispiel für unser PhoenixPferd

--

georg-wicherski@pixel-house.net | http://www.pixel-house.net/ - Coding Resource| http://www.google.de/

zum Seitenanfang zum Seitenende Profil || Suche
017
15.01.2003, 20:10
PhoenixDragon



k danke leute nochmal

--

apogryph

zum Seitenanfang zum Seitenende Profil || Suche
018
15.01.2003, 20:42
the_viking



Wie wärs wenn wir ein kleines Datenbankprogramm daraus machen?

Quellcode:class CActivity
{
   char *m_Description;
   int m_DescriptionLenght;
   long m_Time; // Timestamp...
   void ShowActivity() // zeit & beschreibung ausgeben
   void SetDescription(char* desc);
   void SetTime(long time);
   CActivity* pNext; // Für DynamicList
};


class CActivities
{
   // Bla bla bla.. dynamic list shit comes here... :=)
  
   bool AddActivity(CActivity* pActivity);
   bool SaveActivities(char* filename); // DLink liste speichern ja wohl net so schwer
   bool LoadActivities(char* filename); // und laden ja wohl auch net :)
};

class CActivityProgram
{
   void MakeNewActivity(); // Neue activity vom user eingeben lassen und speichern
   void Save(); // speichern
   void Load(); // Laden
   void DeleteEntry(); // Datensatz von User auswählen und löschen
   void MainLoop();
   void ShowMenu();
   void ClearTheScreen() { system("cls"); }
};

int main()
{
CActivityProgram program;
program.MainLoop();
return 0;
}

Ihr könnt ja mal anfangen :)

--

thx, cu, MfG the_viking

(( My =]=H=O=M=E=> Page! ))
Coder bei Brainshock-Interactive und bei Z-Software
My ICQ: #160959446

zum Seitenanfang zum Seitenende Profil || Suche