是否建议在C中使用cstdio,cstring,cmath等? 我正在编写一个需要pow,strlen和sprintf的程序,因为我可以做到这一点是包括这3个标题.有更好的C方式吗?谢谢解决方法您可以使用std::stringstream而不是sprintf和std::string而不是C风格的字符串.但C只是使用C库作为数学函数.C为数学函数增加了一些方便的重载它们可以在不仅在虽然.
PHP学习之输出字符串(echo,print,printf,print_r和var_dump) 在PHP中,有四种方法输出字符串。echo结构可以一次输出多个值;print()只可以输出一个值;printf()可以格式化输出;print_r()可以输出数组,对调试很有好处。
以下功能定义如何工作? 上面提到的代码块可以在VisualStudio8编译器上编译,尽管输出是垃圾值.但是当我在gcc-4.3.4中编译相同的代码时,我收到以下编译错误:prog.c:2:warning:returntypeof‘main’isnot‘int’prog.c:8:error:conflictingtypesfor‘fun’prog.c:3:error:prevIoUsdeclarationof‘fun’w
有人可以解释这个行为?只有2行代码 4个请仔细解释一下这段代码:输出:你好世界!返回13解决方法它是编译器特定的.你得到这个行为与GCC.这里有一些细节.因为你#include,这个放置是C99的标准,重新定义是undefinedbehavior>GCC编译器有一些优化将一些printf转换成一系列更快的put.这是合法的,因为您已经包括如果您使用-freestanding编译,则不会观察到.你的问题非常接近thisone;所以thisanswer也是有关系的.
c – sprintf没有在范围内声明? 我有一个小代码片段,我设计的东西,但我不断得到错误sprintf没有在范围内声明?我在我的妈妈在VS上工作,但回到家,我不能得到它的代码块解决方法您需要包含stdio.h.stdio.h声明函数sprintf,没有标题,编译器没有办法了解什么sprintf的意思,因此它给你的错误.在C注意,包括cstdio在std命名空间和全局命名空间中导入符号名称.包括stdio.h在全局命名空间中输入符号名称,可能在std命名空间中.这同样适用于所有c风格的标题.
#和##在宏 只要通过查看程序,“可能”就会期望输出为printf语句的输出一样.但是在运行该程序时,可以得到:为什么会这样?解决方法因为这是预处理器的工作原理.单个’#’将从给定的参数创建一个字符串,而不管该参数包含什么,而双“##”将通过连接参数创建一个新的标记.如果您想更好地了解宏如何评估宏,请尝试查看预处理的输出.
c – 为什么写写比我讲的更多? 写入设置为25755,我告诉fwrite写一个文件,这是开头,然后im在一个位置除了25755以外的许多字节?解决方法如果您使用的是DOSish系统,并且文件未以二进制模式打开,则会自动转换行尾,并且每个“行”将添加一个字节.所以,指定“wb”作为模式,而不是只是“w”,因为@caf指出.它将对Unix平台没有影响,并且会对其他人做正确的事情.例如:用VC:用Cygwingcc:
为什么case:总是需要常量表达式,而if()不是? 可能重复,但找不到相同的.假设我有以下C代码:我得到一个案例来检查a是零还是非零.一切都很好使用if-else,我也知道if-else的其他变体来实现这一点.但是问题来自于switch-case,因为它说我们可以在switch-case中实现我们可以在if-else中执行的所有操作.但以下代码失败.另外我知道在上面的代码中反转这个例子,如下所示将工作,我将有我的答案.但问题是,为什么?为什么在案件a:不是有效的情况下?switch-case是一个编译时操作和if()运行时?