标签: printf

如何打印'\n'而不是换行?

我正在编写一个程序,使用打印输入的十六进制转储.但是,当传入换行符,制表符等并破坏输出格式时,我遇到了问题.

我怎样才能使用printf(或我猜想)打印'\n'而不是打印实际的换行符?我只需要为此进行一些手动解析吗?

编辑:我动态地接收我的数据,它不仅仅是我所关注的,而是所有符号.例如,这是我的printf语句:

printf("%c", theChar);
Run Code Online (Sandbox Code Playgroud)

当换行符作为theChar传入时,如何进行此打印\n但是当theChar是有效的可打印字符时仍然使其打印正常文本?

c++ formatting printf cout

6
推荐指数
5
解决办法
5万
查看次数

c中的snprintf与strcpy(等)

对于做字符串连接,我一直在做基础strcpy,strncpy字符*缓冲区.然后我了解了snprintf和朋友们.

我应该坚持我的strcpy,strcpy+ \0终结?或者我应该snprintf在将来使用?

c string printf

6
推荐指数
4
解决办法
2万
查看次数

使用C中的暂停在同一行中打印

我想让我的程序打印一些东西,然后等待几秒钟然后在同一行中打印其他东西.我试着把它写成:

printf ("bla bla bla");
sleep (2);
printf ("yada yada yada\n");
Run Code Online (Sandbox Code Playgroud)

但在输出中我会等待2秒然后我将整行打印为一行.当我尝试将输出放在不同的行中时,它会暂停打印.

如何在同一行中暂停打印?

*在Linux上工作

c linux printf sleep

6
推荐指数
1
解决办法
1810
查看次数

Mysql查询:date_format和sprintf()

我想在MySQL查询中使用sprintf()和date_format.

这是查询:

mysql_select_db($database_exdb, $expdb);
$query_eventeditrs = sprintf("SELECT eventid, groupid, title, DATE_FORMAT(dateofevent, '%W, %M %d, %Y'), timeofevent, location, details, presenter, bio FROM events WHERE eventid = %s", GetSQLValueString($colname_eventeditrs, "int")); 
Run Code Online (Sandbox Code Playgroud)

我收到的错误是:

“Warning: sprintf() [fun
ction.sprintf]: Too few arguments. Query was Empty” 
Run Code Online (Sandbox Code Playgroud)

Plz的帮助

php mysql printf date-format

6
推荐指数
1
解决办法
5198
查看次数

如何在C++中用fprintf编写UTF-8文件

我正在使用VisualStudio和MFC在C++中编程(只是偶尔).我用fopen和fprintf写了一个文件.该文件应以UTF8编码.有没有可能这样做?无论我尝试什么,该文件都是双字节unicode或ISO-8859-2(latin2)编码.

Glanebridge

c++ printf mfc fopen utf-8

6
推荐指数
1
解决办法
2万
查看次数

想要printf的解决方案

可能重复:
如何printf uint64_t?

我想u_int64_t用C 打印.我想知道格式说明符吗?我是C用户,我想做一个printf().

c compiler-construction printf format-specifiers

6
推荐指数
1
解决办法
6070
查看次数

vsnprintf和vsprintf_s有什么区别?

我目前正在为字符串操作编写代码.作为其中的一部分,我正在使用vsnprintf().

但是,编译器会在错误消息下面闪烁:

dont_call: vsnprintf(). Invokation of a potentially dangerous function
    that could introduce a vulnerability. remediation:
    Recommendation: Use vsprintf_s() instead!
Run Code Online (Sandbox Code Playgroud)

结果与vsprintf_s()预期不符.

vsnprintf()和之间有什么区别vsprintf_s()?

c string printf tr24731 c11

6
推荐指数
2
解决办法
2534
查看次数

在Matlab中,如何使用formatSpec格式化运算符指定指数中的位数?

我正在使用fprintfMatlab中的命令将数据写入输出文本文件.如何写一个数字输出文件,例如1.12345678e-001,在指数三位数?

formatSpec = '%1.8e\n';
Run Code Online (Sandbox Code Playgroud)

给出1.12345678e-01,而不是期望的结果!

这里有一个类似的问题 https://se.mathworks.com/matlabcentral/answers/100772-how-do-i-use-fprintf-to-write-numbers-in-exponential-notation-of-variable-exponent-digits -on-A-WINDO

但按照给出的说明没有解决问题!

precision matlab printf exponent

6
推荐指数
3
解决办法
667
查看次数

错误的printf类型仍然打印正确的值

我刚刚遇到这种奇怪的情况,我无法解释它.我真的很好奇,最重要的事情发生了什么.我有这个示例代码:

#include <stdio.h>
#include <stdint.h>

int main()
{
    int64_t qty = 900;
    double  p   = 74.45;

    printf( "%f|%ld\n", p, qty );
    printf( "%f|%ld\n", qty, p );
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

请注意,在第二个printf中,我提供了错误订单中的参数,更不用说类型错误了.但是,我仍然得到两个CORRECT输出?奇怪的是......用gcc 7.2编译:

$ ./a.out
74.450000|900
74.450000|900
Run Code Online (Sandbox Code Playgroud)

这里发生了什么?

c printf

6
推荐指数
1
解决办法
59
查看次数

为什么我在Linux和OS / X上得到不同的输出

我正在尝试一个非常简单的printf测试:

printf "%.16f\n" 5.10
Run Code Online (Sandbox Code Playgroud)

在linux上,我得到以下输出:5.100000000000000000这是预期的。

但是在OS / X上进行的完全相同的测试会产生以下结果: 5.0999999999999996

为什么printf产生不同的输出?

编辑:这不是C代码,printf还是命令行实用程序,非常适合脚本和测试。

下面的等效C程序产生5.100000000000000000:

printf "%.16f\n" 5.10
Run Code Online (Sandbox Code Playgroud)

编辑2:情节变厚...使这对于linux用户更有趣,如果我以的方式运行此命令,则会nobody得到与OS / X相同的行为:

chqrlie$ printf "%.18f\n" 5.10
5.100000000000000000
chqrlie$ su nobody -c 'printf "%.18f\n" 5.10'
5.099999999999999645
Run Code Online (Sandbox Code Playgroud)

c linux macos printf sh

6
推荐指数
2
解决办法
177
查看次数