Tag: printf

将float转换为字符串而不使用sprintf()

我正在编写基于微控制器的应用程序,我需要将float转换为字符串,但我不需要与sprintf()相关的繁重开销。 有没有雄辩的方法来做到这一点? 我不需要太多。 我只需要2位数的精度。

在Linux内核中是否有类似sprintf的C函数?

在Linux内核中是否有类似sprintf()函数(如printf() – > printk() )?

使用数字作为大小创建整数的char数组

我试图在C中创建一个char数组,用int的数字填充它,但int可以是任意数量的数字。 我正在使用一个名为getDigits(int num)的创建函数,它返回int所具有的位数。 char buffer[getDigits(number)] = “”; snprintf(buffer, sizeof(buffer),”%d”,number); 但是当我使用gcc编译时,它返回: error: variable-sized object may not be initialized 我已经尝试了一切。 当我将其声明为char fileSizeStr[5] = “”; , 有用。 当我尝试动态声明缓冲区大小时,我可以看到问题正在上升,但我真的想知道是否是实现此目的的一种方法。

如何使用fprintf / printf打印短划线或点?

截至目前,我正在使用下面的线来打印出点 fprintf( stdout, “%-40s[%d]”, tag, data); 我期待输出会像下面这样, 卡数……………………………. [500] 固定奖金额[以美元计算] ………… [10] 这是一个高赢家奖?………………… [是] 如何使用fprintf / printf打印短划线或点?

如何在C中显式打印特殊字符?

当我使用下面的代码时: #include int main(void) { printf(“%s”,”Hello world\nHello world”); return 0; } 它打印为: Hello world Hello world 如何防止这种情况并将其作为原始字符串文字在C中打印? 我的意思是它应该显示在终端窗口中,如下所示: Hello world\nHello world 我知道我可以通过对printf使用反斜杠来实现这​​一点但是有没有其他C函数或方法来做到这一点而没有反斜杠? 阅读文件时会有所帮助。

C的printf和fprintf(stdout,)没有打印

这有点奇怪。 我的代码没有输出我认为应该的东西。 我在各个阶段添加了一些打印语句,以查看它出错的地方。 依然没有。 所以我在main的开头添加了一个printf语句。 这就是我真的很困惑的地方。 所以我假设文件描述符发生了一些有趣的事情。 我将printf更改为fprintf 。 依然没有。 使用fprintf打印到stderr确实有效! 为什么会这样? 除了初始打印语句之外,从main中删除所有主体并返回打印。 码 int main(void) { fprintf(stdout, “STARTED!”); //Create an Internet domain socket int sockfd = socket(AF_INET, SOCK_STREAM, 0); //If this fails exit and print the error if (sockfd == -1) { printf(“Error %d, cannot create socket”, errno); return 1; } printf(“SOCKET CREATED!”); //Creates […]

如何在mingw-w64 gcc 7.1中无需警告地打印size_t?

我在nuwen.net上使用minGW的mingw-w64(x64)分支。 这是来自7.1版本的gcc: gcc –version gcc (GCC) 7.1.0 我正在编译这个程序: #include int main(void) { size_t a = 100; printf(“a=%lu\n”,a); printf(“a=%llu\n”,a); printf(“a=%zu\n”,a); printf(“a=%I64u\n”,a); } 有警告和c11标准: gcc -Wall -Wextra -Wpedantic -std=c11 test_size_t.c 我收到这些警告: test_size_t.c: In function ‘main’: test_size_t.c:6:14: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 2 has type ‘size_t {aka long long unsigned int}’ […]

为什么在C中没有使用反斜杠转义百分比字符?

printf()文档说如果有人想在C中打印% ,他可以使用: printf(“%%”) 为什么不是: printf(“\%”) 和其他特殊字符一样?

如何隐藏printf中的前导零

以下输出0.23 。 如何让它简单输出.23 ? printf( “%8.2f” , .23 );

如何将相同的变量多次打印到字符串中?

我有一个像这样的格式字符串: buf[] = “A%d,B%d,C%d,D%d,F%d,G%d,H%d,I%d,J%d”; 我想为每个%d插入相同的整数,所以我使用: int val = 6; sprintf(buf2, buf, val,val,val,val,val,val,val,val,val); 我能以一种只需要我写一次val的方式使用sprintf ,而sprintf会在每个%d使用它吗?