c - 在 C 中将 timeval 类型转换为字符串

标签 c casting

我如何输入下面的代码并将其分配给变量?我需要字符串来准确显示 printf 的显示方式。

printf( "\nElapsed time: %ld.%06d seconds\n", start.tv_sec,
                      start.tv_usec)

char test[50] = printf( "\nElapsed time: %ld.%06d seconds\n", start.tv_sec,
                      start.tv_usec)  

output of printf: Elapsed time: 0.000668 seconds

如何将 start.tv_sec 转换为 C 语言中的字符串?

最佳答案

printffprintf 的特例,它将格式化输出打印到文件或流。要将格式化输出打印到字符串,sprintf需要函数族。 snprintf比普通旧的更安全sprintf因为如果为它提供了写入的缓冲区的正确长度,它就不会溢出。

char buffer[50];
snprintf(buffer, 50, "\nElapsed time: %ld.%06d seconds\n", start.tv_sec,  start.tv_usec);

如果您使用的是 Windows,则 header <strsafe.h> 包含更安全的替代品。

关于c - 在 C 中将 timeval 类型转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54639699/

相关文章:

c - LIRC 零键代码 0x10001d0f

c - 带有 "/"字符的 json-c 字符串

java - 上限通配符、迭代器和 for-each 循环

c++ - 这是删除基类指针的内存泄漏吗,如何改正

c++ - 可以使用 std::any_cast 有效地转换 std::any

c - 最小 C 程序中对 "main"的 undefined reference

c - 内存空间中的映射区域和未映射区域有什么区别?

postgresql - 将 varbit 转换为 int 的其他方法?还有大金币?

c# - myData as string、(string) myData 和 Convert.ToString(myData) 之间的区别

c - (C) 从文本文件读取结构