| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2539 人关注过本帖
标题:萌新求指导,两行不同的类型的输入如何存入结构体??
取消只看楼主 加入收藏
Gen404
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2017-5-16
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
萌新求指导,两行不同的类型的输入如何存入结构体??
我想把多行的输入存到结构体里,
输入是
#apple
01 02
#banana
03 04

“#”是用来识别这一行是单词,下一行是数字

要存入的结构体大概是这个样子
struct fruits{
    char fru;
    int num;
};

我该怎么把“apple”(不带#)存入fru,这里是不是应该使用scanf()?
如果使用了scanf(“%s”),第二行的数字会不会自动转换成字符?
第二行数字是要存入num里的
搜索更多相关主题的帖子: 单词 如何 结构体 apple 
2017-05-16 17:17
Gen404
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2017-5-16
收藏
得分:0 
回复 2楼 九转星河
啊是的,只是我不是很清楚如果要用上循环,用scanf的话第一行字符串用“%s”的话第二行数字怎么办?

2017-05-16 17:46
Gen404
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2017-5-16
收藏
得分:0 
参考回复已经做出来了~谢谢谢谢~

[此贴子已经被作者于2017-5-17 12:21编辑过]

2017-05-17 11:59
Gen404
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2017-5-16
收藏
得分:0 
回复 13楼 Emotiona
昨天再做了几遍还是有几点不明白,不好意思我初学学的比较烂

这部分的码是下面这个样子,想问下是不是应该用malloc才不会报错?
input是
#hewitt
5 95 0
#hugh
40 60 0
#jackman
0 100 0
#logan
40 0 60
#melbourne
5 5 90
#sydney
5 5 90
#zack
40 40 20
单词对应的是name,三个数字对应的是first,last,non

程序代码:
#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
快速回复:萌新求指导,两行不同的类型的输入如何存入结构体??
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012801 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved