Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

10.09.2008, 18:57

std::vector<string> in char* konvertieren

ich habe nun versucht, eine Datei nur mit der c++ standart ein zu lesen, und es funktioniert auc soweit.

C-/C++-Quelltext

1
2
3
4
5
6
7
8
string str;
    vector<string> vec;
    ifstream dat("test.txt");

    while(getline(dat, str))
    {
    vec.push_back(str); 
    }


Leider, kriege ich den vector nicht in einen char* konvertiert, bzw, ich habe vor den inhalt des vectors in eine MessageBox aus zu geben.

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

2

10.09.2008, 18:59

Den kompletten Inhalt (wieso sollte man sowas machen wollen)? Oder nur eine Zeile?
@D13_Dreinig

3

10.09.2008, 19:00

Eigentlich den kompletten inhalt, aber zeile für zeile geht auch!

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

4

10.09.2008, 19:08

Du könntest einen Stream-Iterator verwenden:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
template<>
void std::istream_iterator< std::string >::_Getval()
{
    if ( _Myistr != 0 && !std::getline( *_Myistr, _Myval ) ) 
        _Myistr = 0;
}

int main()
{
    std::ifstream stream( "test.txt" );
    std::vector< std::string > buffer( (std::istream_iterator< std::string >( stream )), std::istream_iterator< std::string >() );
}


Weiß aber nicht was du dir von der "C++" Lösung versprichst...

P.S.: Die Lösung ist selbstverständlich nicht ernst zu nehmen! :idea:
@D13_Dreinig

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

5

10.09.2008, 19:53

warum nicht einfach sowas in der art:

C-/C++-Quelltext

1
2
3
4
  std::ifstream file("test.txt");
  std::string str;
  for (std::string line; std::getline(file, line); str += '\n')
    str += line;


dann haste danach den kompletten inhalt der datei in str stehen...

Werbeanzeige