使用 printf("%s",&Buffer[i]);在 C
Using printf("%s",&Buffer[i]); in C
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 base 4 打印“123”。因此,我将其反向存储到 Buffer 数组中(将 int i 设置为 63,因为我将 64 设置为 null)。
长话短说,当它存储到缓冲区时,递增,然后 returns 到 while 循环它不打印任何文本。
编辑:我环顾四周,看起来 printf 只打印 ascii 字符。所以我需要将数字转换为 Table[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]);
}
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 base 4 打印“123”。因此,我将其反向存储到 Buffer 数组中(将 int i 设置为 63,因为我将 64 设置为 null)。
长话短说,当它存储到缓冲区时,递增,然后 returns 到 while 循环它不打印任何文本。
编辑:我环顾四周,看起来 printf 只打印 ascii 字符。所以我需要将数字转换为 Table[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]);
}