结构体成员有字符串,为什么这样输入不行?
定义了一个结构体数组,每个元素有一个成员是字符数组,想问一下为什么按下面的输入方式第一个元素的字符数组没有输进去?代码:
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<ctime>
using namespace std;
struct str{
int number;
char sum[110];
}a[25];
int main(void){
int n,m,i,j;
char temp[110];
scanf("%d",&n);
for(i=1;i<=n;i++){
a[i].number=i;
scanf("%c",&temp[0]);
j=0;
while(temp[j]!='\n'){
j++;
scanf("%c",&temp[j]);
}
temp[j]='\0';
strcpy(a[i].sum,temp);
}
for(i=1;i<=n;i++){
printf("a[%d].number=%d,a[%d].sum=%s\n",i,a[i].number,i,a[i].sum);
}
return 0;
}
如果输入:
5
98765
12365
87954
1022356
输出结果是这样的:
a[1].number=1,a[1].sum=
a[2].number=2,a[2].sum=98765
a[3].number=3,a[3].sum=12365
a[4].number=4,a[4].sum=87954
a[5].number=5,a[5].sum=1022356
求大佬解答,谢谢。