scanf读取字符串时为何把空格读进去了?

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时,都要用&取地址符的

追问

用了啊

追答

把代码复制上来看。

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网