Problem mit append Funktion



  • Hallo wie kann an die Variable var meine Laufwerkbuchstaben übergeben ?

    Mit meiner Funktion unten will ich halt jedes Laufwerk von mir prüfen ob die Datei testdatei.txt existiert.

    In der Variable verz habe ich ja jetzt die einzelnen Laufwerksbuchstaben.

    Aber jetzt komm ich nicht weiter 😞

    [cpp]
    #include <iostream>
    #include <fstream>
    #include <string>
    using namespace std;

    void CheckFile( char path[] );

    int main()
    {

    char laufwerkbuchstabe[] = {'a','b','c'};

    char var[] ="://testdatei.txt";
    string verz;

    for (int i=0;i<3;i++)
    {
    verz . append ( 1 ,laufwerkbuchstabe[i] );
    }

    cout <<verz[0] << endl; // a

    cout <<verz[1] << endl; // b

    cout <<verz[2] << endl; // c

    system("PAUSE");

    return 0;
    }

    void CheckFile( char path[] )
    {

    ifstream file ( path );

    for ( int i=0; i<= sizeof(path) ;i++)
    {

    if ( file. good () )
    {
    cout << "ok";
    }

    }
    }
    [/cpp}



  • Schau dir std::vector an.



  • Das geht auch ohne Vectoren ich hab es ja schon mal gemacht aber ich weiss nicht mehr wie >_<



  • #include <fstream>
    #include <string>
    #include <iostream>
    
    int main(int argc, char *argv[])
    {
    	std::string path("A:\\file.txt");
    	std::ifstream is;
    	for(char c = 'A'; c <= 'Z'; ++c)
    	{
    		is.open(path);
    		std::cout << path << "\texists: " << (is ? true : false) << "\n";
    		++path[0];
    		is.close();
    	}
    	std::cin.get();
    	return 0;
    }
    


  • append schrieb:

    Das geht auch ohne Vectoren ich hab es ja schon mal gemacht aber ich weiss nicht mehr wie >_<

    Mit Sicherheit aber nicht ohne noch explizit die Arraygröße zu übergeben (da sizeof an der Stelle, an der du es verwendest mit Sicherheit nicht das liefert, was du erhoffst).

    std::vector oder std::tr1::array (sofern der Compiler den TR1 unterstützt) sind in der Regel immer sinnvoller als C-Arrays.


Anmelden zum Antworten