萌新求指导,两行不同的类型的输入如何存入结构体??
我想把多行的输入存到结构体里,输入是
#apple
01 02
#banana
03 04
“#”是用来识别这一行是单词,下一行是数字
要存入的结构体大概是这个样子
struct fruits{
char fru;
int num;
};
我该怎么把“apple”(不带#)存入fru,这里是不是应该使用scanf()?
如果使用了scanf(“%s”),第二行的数字会不会自动转换成字符?
第二行数字是要存入num里的
2017-05-16 17:17
2017-05-16 17:46
[此贴子已经被作者于2017-5-17 12:21编辑过]
2017-05-17 11:59

程序代码:#include<stdio.h>
#include<stdlib.h>
typedef struct{
char name;
int p_first;
int p_last;
int p_non;
}name_dict;
name_dict input(void);
int main(int argc, char *argv[]){
name_dict dict;
dict = input();
return 0;
}
name_dict_t input(void){
name_dict new_dict;
int i;
char *line = NULL;
char f;
line = (char*)malloc(sizeof(line));
while((scanf("%s",line))!=EOF){
f = line[0];
if(f == '%'){ //遇到%号停止
break;
}else if (f == '#'){
sscanf(line+1, "%s", &new_dict.name);
scanf("%d %d %d", &new_dict.p_first, &new_dict.p_last, &new_dict.p_non);
printf("%s", new_dict.name); //测试是否成功录入?
}
i++;
}
return new_dict;
}[此贴子已经被作者于2017-5-18 17:38编辑过]
2017-05-18 14:31