Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » ios streams

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
16.02.2007, 20:22 Uhr
Corey



Hallo!!!

Habe eine warscheinlich einfache frage, aber da ich noch ein ziemlicher anfänger bin komme ich nicht drauf, und bei googeln fand ich auch nichts!!!

Also es geht darum das ich eine benutzereingabe in eine externe datei abspeichern will, sie anschliesend auslesen will, (und jetzt kommt mein problem) sie in eine variable abspeichern will damit ich sie im programm weiterbenutzen kann!!!

Also das mit in die datei schreiben und auslesen ist kein problem, nur wie kriege ich die ausgelesenen werte in eine variable ????
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
16.02.2007, 21:16 Uhr
xXx
Devil


Hmm? Zeig mal wie du sie einliest ^^ Muss das ja schon in eine Variable einlesen ... wie willst du es sonnst machen?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
16.02.2007, 21:23 Uhr
0xdeadbeef
Gott
(Operator)



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

int main() {
  std::ifstream in("datei.txt");

  in.unsetf(std::ios::skipws);

  std::string s(std::istream_iterator<char>(in),
                std::istream_iterator<char>());

  std::cout << s;
}


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
16.02.2007, 21:38 Uhr
Corey




C++:
#include <fstream>
#include <iostream>
using namespace std;
int main()   // liefert bei Fehler 1 zurück
{
   char fileName[80];
   char buffer[255];
   cout << "Bitte Dateiname erneut eingeben: ";
   cin >> fileName;

   ifstream fin(fileName);
   if (fin)                // existiert bereits?
   {
      cout << "Aktueller Dateiinhalt:\n";
      char ch;
      while (fin.get(ch))
         cout << ch;
      cout << "\n***Ende des Dateiinhalts.***\n";
   }
   fin.close();

   cout << "\nDie Datei " << fileName <<
           " im Anhaenge-Modus oeffnen...\n";

   ofstream fout(fileName,ios::app);
   if (!fout)
   {
      cout << "Es ist nicht moeglich, " << fileName <<
              " zum Anhaengen zu oeffnen.\n";
      return(1);
   }

   cout << "\nBitte Text für die Datei eingeben: ";
   cin.ignore(1,'\n');
   cin.getline(buffer,255);
   fout << buffer << "\n";
   fout.close();

   fin.open(fileName);  // bestehendes fin-Objekt erneut verwenden!
   if (!fin)
   {
      cout << "Es ist nicht moeglich, " << fileName <<
              " zum Lesen zu oeffnen.\n";
      return(1);
   }
   cout << "\nSo lautet der Inhalt der Datei:\n";
   char ch;
   while (fin.get(ch))
    /* ES GEHT UM DIESE ZEILEN, OK DAS SIND JETZT
   STRINGS; MIR GEHT ES ABER UM INT WERTE ZB: DER BENUTZER GIEBT EINE 20 EIN
   ICH WILL BEIM NECHSTEN PROGRAMMAUFRUF DIE 20 AUSGEBEN, UND ZB NOCH NE ABFRAGE STARTEN WO DER
   BENUTZEN NOCH NE ZAHL EINGEBEN MUSS; DANN DIE BEIDEN ZAHLE ADIEREN ALSO DIE 20 + DEN NEU EINGEGEBENEN WERT
   UND DAMIT DIE 20 ÜBERSCHREIBEN, MIT DEM NEUEN WERT.
   ICH HOFE ICH KONTE DAS EINIGERMASSEN ERKLAEREN WEIL DA BIN ICH ECHT KEIN MEISTER DRIN
   FALS DU ES DENNOCH NICHT VERSTEHST SAGE BESCHED DAN ERKLÄRE ICH ES AUSFURLICH!!!!!
   */

      cout << ch;
   cout << "\n***Ende des Dateiinhalts.***\n";
   fin.close();
   return 0;
}


Dieser Post wurde am 16.02.2007 um 21:46 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
16.02.2007, 21:55 Uhr
Suba Esel



Irgendwie sowas:


C++:
#include <vector> // für std::vector
#include <sstream> // für std::stringstream
/*
Hier steht dein Programm
*/

std::vector<std::string> datei_inhalt; // hierein wird der Dateiinhalt gelesen
std::string text; // Zwischenschritt des Lesens
for(int i = 0;!fin.eof();++i) // zählt mit, wieoft die Liste "gepushbackt" wird
{
fin >> text; // Einlesen, Leerzeichen wegschneiden?
datei_inhalt.push_back(text); // hängt text an datei_inhalt an
}
std::stringstream myStream; // wandler nach int
std::vector<int> zahlen; // die Liste mit den ganzen Zahlen
for(int j = 0;j <= i; ++j) // läuft solange wie die erste for - Schleife
{
myStream << datei_inhalt[j]; // tut datei_inhalt[j] in den stringstream
int zahl = 0;
myStream >> zahl; // tut den stringstream in zahl, wandelt dabei in ein int um
zahlen.push_back(zahl); // hängt das int an die Liste an
}



ungetestet, müsste aber funktionieren.

So, jetzt hast du halt die Liste zahlen, in der alle von Leerzeichen getrennten Sachen drin sind. Die Addition usw. dürfte ja kein Problem sein, wenn in der Datei sowieso nur eine Zahl steht, einfach zahlen[0] abrufen. Achtung: da ist noch keine Fehlerbehandlung für Buchstaben und so drin.
--
Simon
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
21.02.2007, 22:12 Uhr
~Dokno
Gast


Hallo Jungs,
ich habe eine Frage was Dateien einlesen und schreiben betrifft,
wie kann ich meine funktoin so schreiben dass ich nicht nur eine Datei lese sondern die ganze Dateien lesen, Z.B das Programm soll erstmal Datei_1 lesen, die Spalten untersuchen, Infos in Datei_Aus ausgibst, usw. bis Datei_20 (hier könnten 20 und mehr) kann man das automatisieren ?
Kann mir jemand helfen
Danke!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
22.02.2007, 14:28 Uhr
Suba Esel




C++:
#include <iostream>
#include <sstream>
#include <fstream>
.
.
.
std::cout << "Wieviele Dateien sollen eingelesen werden?" << std::endl;
int anzahl;
std::cin >> anzahl;

std::stringstream sstr;
std::ifstream in;
std::string laden = "Datei_";

for (int i = 1; i <= anzahl; ++i)
{
     sstr << i;
     in.open((laden+sstr.str).c_str);
     // verarbeiten
     in.close();
}



Oder was meintest du?
--
Simon

Dieser Post wurde am 22.02.2007 um 14:29 Uhr von Suba Esel 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: