scanf读取字符串时为何把空格读进去了?按图片输入为什么emp[i].sex把空格读进去了而emp[i].name却没有把空格读进去?
#include "stdio.h"
#define N 3
struct employee
{
int num;
char name[15];
char sex[10];
short age;
char addr[20];
float salary;
char health[10];
char degree[10];
}emp[N];
int main()
{
FILE *fp;
int i;
for(i=0;i<N;i++)
{
printf("请输入员工信息\n");
scanf("%d%s%c%d%s%f%s%s",&emp[i].num,emp[i].name,emp[i].sex,&emp[i].age,emp[i].addr,&emp[i].salary,emp[i].health,emp[i].degree);
}
这是因为%s、%d都会忽略开头遇到的空格,遇到空格则结束读入;而%c则把空格也当作是一个有效字符读取了。追问
但是改成字符串s还是这样啊,依旧读空格
就是从addr字符串输入开始就出问题了
读入%d,%f时,都要用&取地址符的
追问用了啊
追答把代码复制上来看。
温馨提示:答案为网友推荐,仅供参考