Warum schreibt dieser Code nur 4 Byte?



  • Ja,Warum schreibt dieser Code nur 4 Byte?

    //protokoll schreiben
    	char* pszFileName = "c:\\myfile.dat";
    	CString szBuffer; 
    	CFile myFile;
    	CFileException fileException;
    
    	//Öffnen oder erstellen	
    	if ( !myFile.Open(pszFileName, CFile::modeRead|CFile::modeReadWrite,&fileException))
    	{
    		myFile.Open(pszFileName,CFile::modeCreate|CFile::modeReadWrite,&fileException);
    	}
    	//Text des protokolls definieren
    	szBuffer = "Testhallostring";
    
    	//Schreiben des Protokolls
    
    	myFile.Write(szBuffer,sizeof(szBuffer));
    	myFile.Seek(0,CFile::end);
    	myFile.Close();
    

    danke im vor raus...



  • Deswegen 😉
    myFile.Write(szBuffer,sizeof(szBuffer));

    sizeof(char-Pointer) == 4; auf 32-Bittern
    Du willst bestimmt:
    sizeof(char)*Anzahl_Buchstaben; //Wobei sizeof(char) immer 1 ist



  • oh, ok aber ich kenne die Anzahl der Buchstaben im realfall ja nicht. Ich kann doch nicht mit dem String mal nehmen ... 😕



  • habs hinbekommen, nochmal danke


Anmelden zum Antworten