Несколько ошибок или «нехорошо» в вашем коде:
- Вы никогда не проверяете, если
open
терпит неудачу.
- Вы используете неуклюжие
write
функции.
- Вы не проверяете, успешна ли ваша запись (не совсем необходима, если вы уверены, что она будет работать).
Это даст вам больше информации, если что-то не получится:
#include <fstream>
using std::ofstream;
#include <iostream>
using std::cout;
using std::endl;
int main()
{
ofstream stream;
char charArray[] = "Some stuff in a char array.";
stream.open("C:\\myurl.txt");
if( !stream )
cout << "Opening file failed" << endl;
// use operator<< for clarity
stream << testDest << endl;
// test if write was succesful - not *really* necessary
if( !stream )
cout << "Write failed" << endl;
return 0;
}
Я предполагаю, что открытие файла не удалось из-за отсутствия необходимых разрешений. Приведенная выше программа скажет вам, где что не получается.
ОБНОВЛЕНИЕ : Чтобы ответить на второй вопрос: вы делаете это:
CBar* a;
Который создает указатель, но оставляет его унитализованным. Затем вы хотите разыменовать его для доступа к члену данных testDest
, что, очевидно, приводит к сбою. Вам нужно инициализировать ваш указатель (или не использовать указатель здесь, я не вижу причин для этого):
// Either this
CBar* a = new CBar(/*some arguments, or none, depending on CBar definition*/);
//...
cout << a->testDest << endl;
// Or this (better here in my opinion)
CBar a; // OK if there is a default constructor (one with no arguments);
//...
cout << a.testDest << endl;
Пожалуйста, прочтите любой хороший учебник по c ++. Это ошибки, которые вы совершаете, если не спали в течение трех дней или не понимаете основных понятий языка.