printf

为什么scanf不需要字符串的&符号,也适用于printf(在C中)?

我现在正在学习C中的字符串.如何使用scanf获取你可以做的字符串而对于printf你可以做到我理解,对于scanf来说,这是因为字符串只是一个字符数组,它是一个指针,但是对于printf,你怎么能像输入int或float一样放置变量名?解决方法scanf需要读入变量的地址,字符串缓冲区已经表示为地址.printf也是这样,将%s视为指向字符串的指针.

inet_aton转换010.000.000.001错了?

我有inet_aton转换网络地址的问题.下面的代码可以很好地转换地址10.0.0.1它输出:到目前为止没问题.但是,当010.000.000.001通过时,该功能很奇怪输出:传递192.168.0.1和192.168.000.001时,该函数正常工作.任何人都可以解释我是什么问题以及如何解决问题?)首先产生字符串以避免混淆..您可以使用sscanf轻松地“标准化”您的输入,即使您无法控制它的生成方式:

C长时间溢出

我对C有一个奇怪的问题,其中长数据类型在它应该之前很久就会溢出.我正在做的事情是使整数表现得像浮点数,因此范围[-32767,32767]被映射到[-1.0,1.0].它失败的地方是更大的参数表示大于1.0的浮点数:我得到的输出是:所以时代类似于3.0*1.0.当时间参数小于32767(1.0)时,此代码工作正常,但上述参数的中间步骤都不会溢出64位长.有任何想法吗?解决方法long不一定是64位.尝试’长期’而不是.

C套接字引发错误代码22,EINVAL – 无效参数

下面的示例代码用作服务器进程.但是当我添加这条线时下面它失败了错误代码22,EINVAL–无效参数.我是C语言的新插座,我无法理解这个问题,你能帮我解决这个问题吗?谢谢.解决方法我没有看到你初始化clientaddrlen的位置.这是一个输入/输出参数.你必须告诉accept()地址的缓冲区有多大.

c – fgets在文件中逐行读取

解决方法在你的情况下,最后一行似乎是两次阅读,但事实并非如此.对fgets的最后一次调用返回NULL以指示已读取文件的结尾.您不检查,并再次打印缓冲区的旧内容,因为缓冲区未更新.通常最好不要使用feof并检查f…系列函数的返回值:在尝试读取超出文件末尾的函数后,函数feof返回true,这只发生在fgets的最后一次(不成功)调用之后,fgets尝试读取或者更确切地说是在文件结束之前读取.这个longSOpost的答案解释得更多.

c – VS2010的错误列表中不再显示Boost.Test错误消息

我正在为本机C项目使用Boost.TestUnitTestFramework.一切正常,但升级到VisualStudio2010后我遇到了一个问题:在测试作为后期构建步骤运行后,错误列表中不再显示有关失败测试的消息.这是一个遗憾,因为Boost.Test与原生C项目的结合最接近(尽管仍然远远不够),以至于我习惯于单元测试管理项目.我正在使用Boost.Testhere的作者推荐的配置.任何人都可以

c – ostream:前缀带空格的正数

在C中,空格可以包含在printf格式化标志中,这导致正数以空格为前缀.这是用于对齐有符号值的有用功能.我无法弄清楚如何在C中做同样的事情.在C:生产:使用ostream,我可以做前两个,但我怎么做第三个?

c – Valgrind无效,内存泄漏

我得到无效免费和内存泄漏.这是我的代码:积分无效:和:我的行动计划:Valgrind输出(使用相同的“用户”输入):纠正我是否应该粘贴整个程序,而不是它的主要部分,或某种工作原型.但是,这里的主要细节是包含关键字“malloc”和“free”的行.更新:从库中添加两个函数,用于此处:“get_pos_num”和“get_word”:解决方法那么显而易见的问题是:你为freq->word分配内存并用

在C中将字符串转换为long long

我无法通过环礁函数在c中正确设置长long值.这是我的例子:这打印:值是:0这有效:这里发生了什么?解决方法首先,让我们回答你的问题:那么,让我们讨论并回答’为什么?