Рекомендуется ли использовать 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 и т.д.