Handlungen in C++ unbegrenzt durchführen können

So hatte ich das ganze ursprünglich auch gehabt, darum war fstream auch noch included. Ging aber auch nicht, darum hab ich dann die c-strings genommen mit denen es halt geht, solange ich nicht .txt anhängen möchte.
Fehlermeldung:
C:\Users\shadow\Desktop\c++\asd.cpp:3:19: ofstream: No such file or directory
C:\Users\shadow\Desktop\c++\asd.cpp: In function `int main()':
C:\Users\shadow\Desktop\c++\asd.cpp:17: error: no matching function for call to `std::basic_ofstream<char, std::char_traits<char> >::basic_ofstream(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, const std::_Ios_Openmode&)'
C:/Dev-Cpp/include/c++/3.4.2/iosfwd:93: note: candidates are: std::basic_ofstream<char, std::char_traits<char> >::basic_ofstream(const std::basic_ofstream<char, std::char_traits<char> >&)
C:/Dev-Cpp/include/c++/3.4.2/fstream:648: note: std::basic_ofstream<_CharT, _Traits>::basic_ofstream(const char*, std::_Ios_Openmode) [with _CharT = char, _Traits = std::char_traits<char>]
C:/Dev-Cpp/include/c++/3.4.2/fstream:631: note: std::basic_ofstream<_CharT, _Traits>::basic_ofstream() [with _CharT = char, _Traits = std::char_traits<char>]

Ich hab, nach der Fehlermeldung, auch schon probiert ofstream zu includen, hilft aber nicht :S

Ideen? ^^
 
wenn ich die Fehlermeldung richtig interpretiere erwartet fstream bzw. ofstream den Dateinamen als C-String und kann mit Strings nichts anfangen


sollte eigentlich leicht zu lösen sein, indem du entweder deinen zusammengebauten String umwandelst:
Code:
#include<iostream>
#include<fstream>
#include<string>

using namespace std;

int main() {
    string content, FileName;
    
    cout << "Inhalt?" << endl;
    cin>>content;
    
    cout << "Datei Name?" << endl;
    cin>>FileName;
    
    ofstream File( (FileName + ".txt").c_str(), ios::out);
    
    File << content << endl;
    
    return 0;
    
}

oder gleich C-Strings beibehältst und strcat zum zusammenbauen nutzt:
Code:
#include<iostream>
#include<fstream>

using namespace std;

int main() {
    char content[30], FileName[20];
    
    cout << "Inhalt?" << endl;
    cin>>content;
    
    cout << "Datei Name?" << endl;
    cin>>FileName;
    
    ofstream File(strcat(FileName, ".txt"), ios::out);
    
    File << content << endl;
    
    return 0;
    
}

müsste eigentlich beides gehen, wobei der code aber von mir nicht getestet wurde
 
  • Like
Reaktionen: r4yn