Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » text einlesen via ifstream und ausgabe ..

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 ]
000
09.12.2010, 04:55 Uhr
~Butzibutzi
Gast


Hallo Liebes Forum,

ich hab hier schon einiges gelesen und muss erstmal ein großes Lob an dieses Forum aussprechen!!
Nun habe ich folgendes Problem, ich soll via ifstream einen Text einlesen, nach dem einlesen soll der Text wieder ausgegeben werden, jedoch (hier kommt das eigentliche Problem) immer Zeichen fuer Zeichen.

z.B. input text: ' Hello World'

output text:'
H
e
l
l
o

W
o
r
l
d'

Also immer mit einem Zeilenumbruch nach jedem Zeichen, wie kann mensch das realisieren?
Ich vermute durch stringlenght die Zeichen zaehlen zu lassen und danach mit hilfe einer for Schleife wieder auszugeben..
Jedoch komm ich mit meinen Kompotenzen da mehr als an meine Grenzen ...

Liebe Grueße Butzi
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
09.12.2010, 08:01 Uhr
ao

(Operator)


Wenn der Text so


C++:
std::string text;


gespeichert ist oder so:


C++:
char text [IRGENDEINE_LAENGE];


dann kannst du mit text[i] auf das i-te Zeichen zugreifen. Hilft das weiter?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
09.12.2010, 11:54 Uhr
wanne



Beispiel:

C++:
#include <iostream>
using namespace std;

int main()
{
    cout << "was?" << endl;
    string text;
    getline(cin,text);//holt den text
    cout << text << endl; //gibt nochmal den gesamten Text aus
    for(unsigned short i=0;i<text.size();i++)//solange i kleiner als die länge des Textes ist
        cout << text[i] << endl; // wird der ite Buchstab ausgegeben und i erhöht
}

Dieser Post wurde am 09.12.2010 um 12:10 Uhr von wanne editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
09.12.2010, 16:01 Uhr
~Butzibutzi
Gast


Hallo,

@ao ist beides nicht der Fall, oder steh ich gerade auf dem Schlauch?!

@wanne ja das sieht am simpelsten aus, aber wie kann ich dort jetzt das ganze mit dem ifstream realisieren?

Ich hab mich mal nochmal dran versucht, komm aber immernoch auf keinen Nenner..


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

using namespace std;

int i;
string text[500];
int main(int argc ,  char *argv)

{
            ifstream file;
            string fileName = "text.txt";
          
            file.open(fileName.c_str());
            if(file)
            {
                        string text[i];
                        while(!file.eof())
                        {
                                    char buffer;
                                    file.get(buffer);
                                    text += buffer;
                        }
                        for(i=0; i < 500; i++)
                        {
                        cout << text[i];}
                        file.close();
            }
            else
            {
                        cout << "Datei Fehler!";
            }
            cin.get();
            return 0;
          
}


---

Bearbeitung:
cpp - Tags eingefügt

Dieser Post wurde am 09.12.2010 um 20:28 Uhr von Hans editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
10.12.2010, 12:53 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


guck mal hier:



evtl hilft dir ja das
--
class God : public ChuckNorris { };

Dieser Post wurde am 10.12.2010 um 12:53 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
13.12.2010, 06:14 Uhr
~Butzibutzi
Gast


Hi danke fuer eure Hilfe,
mein Prof hat mir eben eine Loesung gegeben,
falls jemand ein aehnliches Problem hat:


C++:
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>

int _tmain(int argc, _TCHAR* argv[])
{
    FILE *fin;
char c;
if((fin=fopen("Test.txt","r"))==NULL)
    {
        printf("Inputfile not found\n");
        getchar();
        exit(1);
    }

while((c=fgetc(fin))!=EOF)
  {
printf("charcter is %c\n",c);
}



    getchar();
    return 0;
}


Beste Grueße
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
13.12.2010, 08:47 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


das ist dann aber alles andere als C++ ;-) (reines C ists auch nicht, wegen dem MS-geschmarre)
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
13.12.2010, 09:09 Uhr
ao

(Operator)



Zitat:
ich soll via ifstream einen Text einlesen


Zitat:
mein Prof hat mir eben eine Loesung gegeben ...


"Herr Professor, wo in der Musterlösung kommt ifstream vor?"

"Die Ausformulierung der gegebenen Lösungsskizze mit Hilfe der libc++ ist eine geringfügige Transferleistung, die Ihnen als Kandidaten zur Übung überlassen wird. " - Mikro aus, Laptop aus, raus ausm Hörsaal und den Assi zusammenfalten, der das Powerpoint gebastelt hat.

Dieser Post wurde am 13.12.2010 um 09:12 Uhr von ao editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
13.12.2010, 11:06 Uhr
0xdeadbeef
Gott
(Operator)



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

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

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

  std::copy(std::istream_iterator<char>(in),
            std::istream_iterator<char>(),
            std::ostream_iterator<char>(std::cout, "\n"));
}


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
13.12.2010, 20:45 Uhr
Hans
Library Walker
(Operator)



Zitat von ~Butzibutzi:
Hi danke fuer eure Hilfe,
mein Prof hat mir eben eine Loesung gegeben,



Au weia! Das hat mit C++ aber nichts zu tun, wie hier schon angemerkt wurde. Von dem MS-spezifischen "Klimbim" abgesehen ist das reines C, - ohne die zwei Pluszeichen dahinter.
Wer auch immer das verbrochen hat, hat noch nicht begriffen, das C und C++ zwei verschiedene Sprachen sind, wenn man die dahinter liegenden Konzepte ernst nimmt.

Hans


P.S. @Beefy: In der Annahme, das Du da ein lauffähiges Programm gepostet hast, hab ich das mal durch den Compiler gejagt. Der meldet jedoch:
Zitat von Open Watcom Compiler:

hallo.cpp(11): Error! E926: col(18) syntax error: 'std::istream_iterator' has not been declared as a member

Ist das normal, oder ein Bug im Compiler?
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.

Dieser Post wurde am 13.12.2010 um 20:52 Uhr von Hans editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (WinAPI, Konsole) ]  


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: