在c语言中如何将整数存储到字符指针中
我试图通过字符指针将字符和整数存储在同一区域中,但是,我没有得到预期的结果。它只显示字符。 在这里,我创建了一个字符指针,它应该至少包含字符和字符 整数,则应正确显示它们在c语言中如何将整数存储到字符指针中,c,C,我试图通过字符指针将字符和整数存储在同一区域中,但是,我没有得到预期的结果。它只显示字符。 在这里,我创建了一个字符指针,它应该至少包含字符和字符 整数,则应正确显示它们 int main() { char c,store[30]; char *p=malloc(30); int choice,i=0,n; p=store; while(1) { printf("\n********Menu**********"); printf("\n1.Enter a character");
int main()
{
char c,store[30];
char *p=malloc(30);
int choice,i=0,n;
p=store;
while(1)
{
printf("\n********Menu**********");
printf("\n1.Enter a character");
printf("\n2.Enter a Number");
printf("\n3.Enter a double");
printf("\n4.Display the values");
printf("\n0.Exit");
printf("\nEnter your choice:");
scanf("%d",&choice);
switch(choice)
{
case 1:
printf("\nEnter a character:");
fflush(stdin);
scanf("%c",&c);
*p=c;
p++;
break;
case 2:
printf("\nEnter a Number");
scanf("%d",&n);
*p++=n;
break;
case 4:
*p--='\0';
for(i=0;store[i];i++)
printf("%c",store[i]);
break;
case 0:
exit(0);
break;
}
}
getch();
return 0;
}
不能简单地将double和int写入
char
数组
但是,通过以下步骤,您可以看到0-9:
case 2:
printf("\nEnter a Number"); //Just for 0-9
scanf("%d",&n);
*p=n+48; //Convert to ascii
p++;
break;
首先:你为什么要这样做???这是一种可怕的做法,如果没有大量额外的代码来确保不会出错,就不应该这样做。第二:你做得很糟糕-在案例2中,你应该用sizeof(int)来增加p,你需要一个类型转换,第三:当你打印时,你用%c来打印它作为一个字符。如果是int,请使用%d打印它。这是学习如何使用工会的一个尝试性课程吗?你认为
*p++
做什么?如果用户输入11作为数字,你会收到什么?与11+48对应的@DanilAsotsky ascii,w.r.t我的帖子