Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Zufalsdatei öffnen

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 ] [ 2 ] [ 3 ] > 4 < [ 5 ]
030
25.03.2005, 10:45 Uhr
Oliver
S2-Pixelgeneral


Ähm, weil du 'gesamt' nicht deklariert hast? Und zum binden kannst du nicht den Punkt verwenden, C++ ist nicht PHP


C++:
#include <cstdlib>
#include <ctime>
#include <fstream>
#include <iostream>
#include <sstream>
#include <string>

namespace { int const maximum = 100; }

int main() {
  using namespace std;
  stringstream sstr;
  string dateiname;
  ifstream in;
  string gesamt;

  srand(time(0)); // Zufallszahlengenerator initialisieren
  sstr << (rand() % maximum + 1) << ".txt";
  dateiname = sstr.str();
  gesamt = "C:\\Neuer Ordner\\1\\" + dateiname;
  in.open(gesamt.c_str(), ios::in);

  // ... und dann mit der Datei arbeiten. Zum Beispiel:
  char c;
  while(in.get(c)) cout.put(c);

  return 0;
}


--
Demokratie ist die Diktatur der Mehrheit.

www.siedler25.org/ ( Siedler2 - Remake )
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
031
25.03.2005, 10:58 Uhr
~JackieChan
Gast


Deklaniert hatte ich es eigentlich und der Bindefehler, naja hab ich mich doch mit Php vertan! Aber das kommt daher, dass ich seit min. 4 Monaten nichts mehr großes programmiert habe und jetzt erst wieder angefangen habe!!!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
032
25.03.2005, 11:03 Uhr
~JackieChan
Gast


Vielen Dank für eure Hilfe!!! Ich denke, dass dies ein klasse Forum ist und daher muss ich mich erstmal gleich registrieren!!!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
033
26.03.2005, 13:48 Uhr
~JackieChan
Gast


Wo liegt der Fehler??????? Übrigens ich benutze mittlerweile den Compiler von Dev-C++!

C++:
#include <fstream>
#include <string>

int main(void)
{
  char a;
  cout <<"eingabe: \n";
  cin >> a;

  std::ifstream in("8.txt");
  std::string zeile, y;
  // Die ersten zwei Zeilen ausgeben:
  for(int i = 0; i < 2; ++i) {
    std::getline(in, zeile);
    std::cout << zeile << std::endl;
  }

  // Die dritte Zeile in y speichern
  std::getline(in, zeile);
    
  int q;
  cout <<"eingabe: \n";
  cin >> a;

  if(strcmp(a,zeile) ==0)
  {
    cout<<"Richtig!";
    cin>>q;
  }
  else
  {
    cout<<"Falsch!";
    cin>>q;
  }
}



Bearbeitung von 0xdeadbeef:

Ich hab den Kram mal sinnvoll eingerückt, damit wirds lesbarer.


Dieser Post wurde am 26.03.2005 um 15:30 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
034
26.03.2005, 15:37 Uhr
0xdeadbeef
Gott
(Operator)


Zunächst mal benutzt du STL-Identifier ohne std:: davor, und hast nirgendwo using namespace std; stehen. Das heißt, er wird cin und cout, wenn kein std:: davor steht, einfach nicht finden. Ganz abgesehen davon hast du am Anfang bei den Headern

C++:
#include <iostream>


vrgessen. In iostream werden cin, cout usw. überhaupt deklariert, deswegen musst du den Header einbinden, wenn du sie benutzen willst.

Dann hast du a als char deklariert, was ein Zeichen, aber kein string ist. In C hätte man wohl

C++:
char a[BUFFERLAENGE]; // BUFFERLAENGE sollte durch eine Zahl ersetzt werden, die groß genug ist, um die erwartete Eingabe zu fassen.


geschrieben, aber in C++ benutzt man dafür

C++:
std::string a;


Was uns gleich zum nächsten bringt:

C++:
  if(strcmp(a,zeile) ==0)


Zum einen musst du, um strcmp benutzen zu können,

C++:
#include <cstring>


bei den Header-includes dazuschreiben. Dann ist strcmp immer noch im namespace std, also hieße das std::strcmp. Außerdem ist bei dir a ein char und zeile ein std::string, während strcmp zwei char* erwartet. Also, entweder, du deklarierst a als char[] wie oben gezeigt und machst

C++:
  if(strcmp(a, zeile.c_str()) == 0)


oder du machst es sinnvoll, deklarierst a als std::string und schreibst

C++:
  if(a == zeile)


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
035
26.03.2005, 16:33 Uhr
~JackieChan
Gast


Ich habe alles gemacht trotzem sagt er:
11 CDokumente und Einstellungen\Kamal\Desktop\sfgdfhdgh.cpp `cin' undeclared (first use this function)
obwohl ich #include<iostream> eingefügt habe!!!???
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
036
26.03.2005, 16:40 Uhr
Manuelito



Hast du denn auch

C++:
using namespace std;


geschrieben???
--
Verstand ist das, was am gerechtesten unter den Menschen verteilt ist.
Jeder glaubt, er hätte genug davon.
-- unbekannt

Dieser Post wurde am 26.03.2005 um 16:41 Uhr von Manuelito editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
037
26.03.2005, 19:28 Uhr
~JackieChan
Gast


Ahb danke jetzt geht es, aber wieso geht das nicht???

C++:
#include <iostream.h>
#include <fstream>
#include <string>
#include <cstring>
#include <cstdlib>
#include <ctime>
#include <sstream>

namespace { int const maximum = 2; }
using namespace std;

int main(void)
{
    using namespace std;
  stringstream sstr;
  string dateiname;
  string gesamt;
  string in;
  
  srand(time(0)); // Zufallszahlengenerator initialisieren
  sstr << (rand() % maximum + 1) << ".txt";
  dateiname = sstr.str();
  gesamt = "C:\\Neuer Ordner\\1\\" + dateiname;
  in.open(gesamt.c_str(), ios::in);
    
  std::string a;
  cout <<"eingabe: \n";
  cin >> a;

  std::ifstream ino(gesamt);
  std::string zeile, y;
  // Die ersten zwei Zeilen ausgeben:
  for(int i = 0; i < 2; ++i) {
    std::getline(ino, zeile);
    std::cout << zeile << std::endl;
  }

  // Die dritte Zeile in y speichern
  std::getline(in, zeile);
    
  int q;
  cout <<"eingabe: \n";
  cin >> a;
  if(a == zeile)
    {
    cout<<"Richtig!";
    cin>>q;
  }
  else
  {
    cout<<"Falsch!";
    cin>>q;
  }
}


 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
038
26.03.2005, 21:19 Uhr
(un)wissender
Niveauwart


Tut mir leid, aber was willst du? Da steht soviel Käse es ist nicht zum aushalten. Allerdings könntest du, wenn du die posts gelesen hättest, die Sachen alle selber korrigieren (zumindestt die Syntax). Kauf dir ein C++-Buch...
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
039
26.03.2005, 21:56 Uhr
Pablo
Supertux
(Operator)


wozu 2. Mal using namespace std; ???
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] [ 2 ] [ 3 ] > 4 < [ 5 ]     [ 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: