gpt4 book ai didi

c - 使用 printf ("%s",&Buffer[i]);在C中

转载 作者:行者123 更新时间:2023-11-30 20:13:07 24 4
gpt4 key购买 nike

void Store(int temp){
Buffer[i]=temp;
i--;

}

int main(int argc, char *argv[]){
Buffer[64]=00;

int value = atoi(argv[1]);
int base = atoi(argv[2]);

char Table[16] = { '0', '1', '2', '3', '4', '5' , '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};

//Mathmatical algorithm
while(value !=0){
digit = value%base;
value = value/base;
Store(digit);
printf("%s",&Buffer[i]);
}

我开始自学C语言。我试图弄清楚如何将 printf 与这个 char Buffer[65] 一起使用。本质上,我的算法提取用户给出的值和基数,然后计算该数字在该基数中的值。如果我更改 printf 来打印数字,它会打印 57 基数 4 的“123”。因此,我让它以相反的方式将数字存储到 Buffer 数组中(将 int i 设置为 63,因为我将 64 设置为 null)。

长话短说,当它存储到缓冲区中时,向下递增,然后返回到 while 循环,它不会打印任何文本。

编辑:当我环顾四周时,看起来 printf 只打印 ascii 字符。所以我需要将数字转换为表[16]中的字符之一?

最佳答案

这是一个可行的答案,但它只能以 16 为基数:

#include <stdio.h>
char Buffer[65];
int i = 63;

void Store(int temp){
Buffer[i]=temp;
i--;
}

int main(int argc, char *argv[]){
Buffer[64]=00;

int value = atoi(argv[1]);
int base = atoi(argv[2]);

printf( "%d in base %d = ", value, base );

char Table[16] = { '0', '1', '2', '3', '4', '5' , '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};

//Mathmatical algorithm
while(value !=0){
int digit = value%base;
value = value/base;
Store( Table[digit]); // or: Buffer[i--] = Table[digit];
}
printf("%s\n", &Buffer[i+1]);
}

关于c - 使用 printf ("%s",&Buffer[i]);在C中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32631893/

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