C-打印整个阵列,每三个元素之间分隔
如果标题令人困惑,我很抱歉。假设我有一个字符数组,如下所示:C-打印整个阵列,每三个元素之间分隔,c,C,如果标题令人困惑,我很抱歉。假设我有一个字符数组,如下所示: [0,1,2,3,4,5,6,7,8,9,...] 123,456,789 我想把它的元素打印出来如下: [0,1,2,3,4,5,6,7,8,9,...] 123,456,789 仅用作函数write()。 我澄清了最后一个元素后面不能跟逗号,数组的长度未知(我将其长度设置为1000,但只在另一个循环中插入了一些值,因此我们不知道数组填充到哪个点,但我们知道该数字是3的倍数) 我尝试了以下方法: for (int i=0
[0,1,2,3,4,5,6,7,8,9,...]
123,456,789
我想把它的元素打印出来如下:
[0,1,2,3,4,5,6,7,8,9,...]
123,456,789
仅用作函数write()
。
我澄清了最后一个元素后面不能跟逗号,数组的长度未知(我将其长度设置为1000,但只在另一个循环中插入了一些值,因此我们不知道数组填充到哪个点,但我们知道该数字是3的倍数)
我尝试了以下方法:
for (int i=0;i<1000;i+=3){
write(i,&array,i+3)
}
对于(int i=0;i首先,您应该阅读write()
函数的文档。此函数按以下顺序接受3个参数:
- 使用
open()
- 要打印的数组缓冲区(
array
)
- 要从该缓冲区打印的长度(以字节为单位)
假设您这样声明数组:
[0,1,2,3,4,5,6,7,8,9,...]
123,456,789
char数组[1000]=[1',2',3',4',5',…];
可以打印3个元素,用逗号分隔,如下所示:
[0,1,2,3,4,5,6,7,8,9,...]
123,456,789
int fd=STDOUT\u FILENO;//这是1,但最好使用命名常量
对于(int i=0;i<1000;i+=3)
{
写入(fd,数组+i,3);
写入(fd,,,1)
}
这是一个选项。请注意,正如您所说,此示例适用于字符数组。如果您使用整数数组,则需要做更多的工作,因为您必须将这些整数转换为字符串,并逐个打印每个转换后的数字
旁注:默认情况下,您打开了3个文件:
0
-标准输入-STDIN\u文件号
1
-标准输出-STDOUT\u文件号
2
-标准错误-STDERR\u文件号
到目前为止您尝试了什么?write()函数具体是什么?如果您正在引用,则需要修改它。即使这不是代码中存在的唯一问题