结构体输出问题
程序代码:
#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
typedef struct
{
int a;
char c; //为什么这里改成数组,就能将输入的显示出来
}S;
S * se()
{
S *p1;
if((p1=(S*)malloc(sizeof(S)))==NULL)
{
printf("内在分配失败");
return NULL;
}
scanf("%d%c",&p1->a,&p1->c); //例如输入23 a ,输出却是23, 后面的a跑到哪里去了呢
return p1;
}
int main()
{
S *p;
p=se();
printf("%d,%c\n",p->a,p->c);
getch();
free(p);
return 0;
}
#include "conio.h"
#include "stdlib.h"
typedef struct
{
int a;
char c; //为什么这里改成数组,就能将输入的显示出来
}S;
S * se()
{
S *p1;
if((p1=(S*)malloc(sizeof(S)))==NULL)
{
printf("内在分配失败");
return NULL;
}
scanf("%d%c",&p1->a,&p1->c); //例如输入23 a ,输出却是23, 后面的a跑到哪里去了呢
return p1;
}
int main()
{
S *p;
p=se();
printf("%d,%c\n",p->a,p->c);
getch();
free(p);
return 0;
}
----------------解决方案--------------------------------------------------------
scanf函数遇到空白字符就会终止读取,空白字符指空格、换行和制表符
----------------解决方案--------------------------------------------------------
当然,char c只有1个元素,你只能输入1个值呀
比如char c[100]就能接受100个字符。就是这么简单拉
----------------解决方案--------------------------------------------------------
"%d%c"改"%d %c"
----------------解决方案--------------------------------------------------------
明白....
----------------解决方案--------------------------------------------------------
我居然还范这种低级错误
----------------解决方案--------------------------------------------------------
已经改正...
----------------解决方案--------------------------------------------------------