Рекомендуется ли использовать cstdio, cstring, cmath и т.д. В С++?

Рекомендуется ли использовать cstdio, cstring, cmath в С++? Я писал программу, которая нуждалась в pow, strlen и sprintf... для этого единственный способ, которым я мог это сделать, - включить эти 3 заголовка. Есть ли лучший способ С++ для этого?

Спасибо

Ответ 1

Вместо строк sprintf вместо sprintf и std::string вы можете использовать std::stringstream. Но С++ просто использует библиотеку C для математических функций.

С++ добавляет некоторые удобные перегрузки для математических функций (например, вы можете использовать exp() для float.) Они доступны в < math.h > не только в <cmath> хотя.

Ответ 2

Это правильный путь.

Ответ 3

Для математических функций, <cmath> это правильный путь; однако для ввода/вывода вы должны использовать <iostream> , <sstream> , <fstream> , и друзья. Для обработки строк, <string> это путь.

Ответ 4

cmath на самом деле не заменяется на С++, так как нет ничего лучше, чтобы сделать их лучше. Тем не менее, stringstreams/iostreams намного превосходят строки cstring и cstdio.

Если у вас есть строка C, вы можете легко конвертировать в std::string, и то же самое для возврата назад. Если вы используете строки, ВСЕГДА используйте строковые библиотеки С++ поверх strlen, sprintf и т.д.