gpt4 book ai didi

c - 如何使用 write() 代替 printf()

转载 作者:行者123 更新时间:2023-11-30 19:48:04 25 4
gpt4 key购买 nike

我试图通过使用系统调用 write() 在控制台上打印一些内容。到目前为止,比我想象的要困难。

函数保持简单:

void writeOutput(char a, int64_t b, uint8_t c) {
char bNew[]; // what should be the size of that array=
while(b != 0x0000000000000000) {
int leftover = b%10;
bNew[i] = intToChar(leftover);
b = b/10;
i++;
}
}

char intToChar(int num) {
return '0' + num;
}

a 的格式应为 char,b 的格式应为十进制数,c 的格式应为八进制数。

例如,可能的输入是:writeOutput('a', -0xffff, 17);//输出为“a -65535 21”

打印的参数应以空格分隔,并以标准输出的换行符结尾。另外,我试图在不使用 sprintf-family 的功能的情况下做到这一点。这使得事情变得有点棘手。

编辑:我的问题是:如何使用 write() 做到这一点? (抱歉,错过了!)代码在线。EDIT2:我的主要问题是在不使用 sprintf 系列的情况下完成此操作。我希望你能帮助我。

最佳答案

您可以使用第一个参数调用write(),该参数是一个fd作为标准输出。它会写入标准输出,这是你的控制台。但在此之前,您需要有一个字符串缓冲区,您可以使用 sprintf' 或 snprintf ,其格式与 printf` 相同。但 printf 方式更简单,除非您有一些非常特殊的用例,否则它应该可以达到目的。

关于c - 如何使用 write() 代替 printf(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20057562/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com