У меня проблема с печатью строки, которую я использую в целях отладки.
Я создаю строку так:
//checker is int
std::stringstream buttonx;
buttonx << "Button" << checker << "_x";
Теперь я пытаюсь распечатать его на мой error.txt
файл
FILE * p;
p = fopen ("error.txt","w");
fprintf(p, "%s" , buttonx.str());
fclose(p);
Выход:
,æ0
Каждый раз по-разному. Я не уверен, что происходит, надеясь, что некоторые могут объяснить ошибку?
fopen
является простым C и не может обрабатывать std :: string. Вам необходимо ввести char*
, который вы можете получить по телефону .c_str()
на строку, как это:
fprintf(p, "%s", buttonx.str().c_str());
функция fprintf хочет строку с нулевым символом в конце (строка C); вам нужен c_str () вместо вашего:
buttonx.c_str()