是否建议在C+中使用cstdio、cstring、cmath等+;? 推荐使用C++中的CSTDIO、cStand、CyMaple吗? 我在写一个需要pow,strlen和sprintf的程序。。。为此,我唯一能做的就是包含这3个标题。有没有更好的C++方法?< /P>

是否建议在C+中使用cstdio、cstring、cmath等+;? 推荐使用C++中的CSTDIO、cStand、CyMaple吗? 我在写一个需要pow,strlen和sprintf的程序。。。为此,我唯一能做的就是包含这3个标题。有没有更好的C++方法?< /P>,c++,C++,谢谢,这是正确的方法。您可以使用std::stringstream而不是sprintf和std::string而不是C样式的字符串。但是C++只使用C库来实现数学函数。 C++为数学函数添加了一些方便的重载(例如,可以将exp()用于float)。它们不仅在中可用。对于数学函数,这是正确的方法;但是,对于I/O,您应该使用、、和朋友。对于字符串操作来说,是这样的。 CyMaple并没有真正取代C++,因为没有什么能让它们更好。然而,stringstreams/iostreams远远优于cstri

谢谢,这是正确的方法。

您可以使用
std::stringstream
而不是
sprintf
std::string
而不是C样式的字符串。但是C++只使用C库来实现数学函数。
C++为数学函数添加了一些方便的重载(例如,可以将exp()用于float)。它们不仅在中可用。

对于数学函数,这是正确的方法;但是,对于I/O,您应该使用、、和朋友。对于字符串操作来说,是这样的。

CyMaple并没有真正取代C++,因为没有什么能让它们更好。然而,stringstreams/iostreams远远优于cstring和cstdio批次


如果您有一个C字符串,那么可以很容易地转换为std::string,对于back也是如此。如果你使用字符串,总是使用StrLon,SaMPTF,C++的字符串库。

除了Strutff之外,还有很多有用的东西。如果您切换到C++的字符串类,您将在字符串头中获得所有内容。(好的,有时您可能还需要算法)如果可能的话,最好使用C++的字符串而不是字符*。string.h也有一些非字符串函数,如memcpy和memset。memcpy和memset被std::copy和std::fill取代。对于POD类型,GNU的实现取决于memcpy。不确定MeSt.我不确定我同意这个观点:听起来他在处理C风格字符串,而不是C++字符串。我的问题是:他不应该使用STD::Basic字符串,而不是空结尾字符串,以及C++的IO操作特性,而不是Simultf?欢呼:听起来像是你在写C,只是使用C++编译器。如果你使用C++,我认为你应该使用标准库的IO人工化功能,而不是String流,而不是SCAFTF,使用C++字符串类代替C风格字符串。您“需要”strlen()和sprintf(),因为您正在处理C字符串。iostream比scanf/printf(acm olympiads experience)@osgx慢得多,我不确定我是否相信。scanf/printf必须处理比iostreams多得多的格式。您使用了哪种实现?iostream的任何合理实现都应该至少同样快。在我们的奥运会上,问题在于
sync\u with_stdio
。libstdc++来自gcc的iostream在Linux中启用了这一功能。关闭此选项后,iostream的速度增加