Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » dateiname + ".txt"

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
27.10.2003, 09:53 Uhr
~blue_man
Gast



C++:
//...
char dateiname[10];
char datei[15];

cout << "\nGeben sie bitte den Namen der Notiz-Datei ein.";
cin >> dateiname;

datei = dateiname + ".txt"; //UNZULÄSSIG ?????
ifstream in(datei);
ofstream out(datei);
//...



Ich bekomme beim kompilieren immer die Meldung das das Unzulässig sie????
was habe ich falsch gemacht???

Ich bin noch Anfänger und habe mir das so zusammengebastelt, weiß aber nicht genau, warum das nicht Funktioniert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
27.10.2003, 10:11 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


hi, entweder std::string benutzen, dann geht das mit +, ansonsten musst du sprintf benutzen:


C++:
sprintf(datei,"%s.txt",dateiname);


--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
27.10.2003, 10:44 Uhr
~blue_man
Gast



C++:
std::string dateiname;
std::string datei;

cout << "\nGeben sie bitte den Namen der Notiz-Datei ein.";
cin >> dateiname;

datei = dateiname + ".txt";
ifstream in(datei);   // no matching   candidates are:
ofstream out(datei);// no matching   candidates are:

cout << "\nGeben sie bitte den Text ein.";
cout << "\nZum Beenden, den Befehl END in die letzte zeile schreiben.";

std::string text;
do
{
  cin >> text;
  
  if (text == "end")
   {
    break;
   }
  
  out << text << endl;  
}
while (0);
}



jetzt ist ddieser fehler aufgetreten
no matching candidates are:
????
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
27.10.2003, 12:00 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


du musst dann

C++:
ifstream in(datei.c_str());



schreiben
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
27.10.2003, 12:50 Uhr
~blue_man
Gast


 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
27.10.2003, 13:24 Uhr
0xdeadbeef
Gott
(Operator)


Außerdem wäre es richtiger, std::ifstream bzw. std::ostream zu schreiben, die sind nämlich ebenfalls Teil der STL. Dann kannst du dir auch das "using namespace std;" sparen.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
27.10.2003, 15:06 Uhr
Pablo
Supertux
(Operator)



Zitat:
~blue_man postete

C++:
//...

datei = dateiname + ".txt"; //UNZULÄSSIG ?????







Warum unzulässig? Weil Datei, dateiname und ".txt" Pointers auf char* und das nicht möglich ist. Dafür sind die ganzen str Funktionen (stdlib.h und string.h). Oder wenn du C++ programmierst, dann nimm die Klasse string, das geht viel einfacher.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 27.10.2003 um 15:06 Uhr von Pablo Yanez Trujillo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: