Распечатать строку с помощью fprintf

У меня проблема с печатью строки, которую я использую в целях отладки.

Я создаю строку так:

//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

Каждый раз по-разному. Я не уверен, что происходит, надеясь, что некоторые могут объяснить ошибку?

3

Решение

fopen является простым C и не может обрабатывать std :: string. Вам необходимо ввести char*, который вы можете получить по телефону .c_str() на строку, как это:

fprintf(p, "%s", buttonx.str().c_str());
7

Другие решения

функция fprintf хочет строку с нулевым символом в конце (строка C); вам нужен c_str () вместо вашего:

 buttonx.c_str()
0

По вопросам рекламы [email protected]