萌新求指导,两行不同的类型的输入如何存入结构体??
我想把多行的输入存到结构体里,输入是
#apple
01 02
#banana
03 04
“#”是用来识别这一行是单词,下一行是数字
要存入的结构体大概是这个样子
struct fruits{
char fru;
int num;
};
我该怎么把“apple”(不带#)存入fru,这里是不是应该使用scanf()?
如果使用了scanf(“%s”),第二行的数字会不会自动转换成字符?
第二行数字是要存入num里的
#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编辑过]