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

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

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

我该怎么把“apple”(不带#)存入fru,这里是不是应该使用scanf()?
如果使用了scanf(“%s”),第二行的数字会不会自动转换成字符?
第二行数字是要存入num里的
搜索更多相关主题的帖子: 单词 如何 结构体 apple 
2017-05-16 17:17
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:4 
fruits.fru=apple;fruits.num=1;不是这样么?~当然结构体成员的类型要和获取信息的变量类型相匹配~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-05-16 17:38
Gen404
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2017-5-16
收藏
得分:0 
回复 2楼 九转星河
啊是的,只是我不是很清楚如果要用上循环,用scanf的话第一行字符串用“%s”的话第二行数字怎么办?

2017-05-16 17:46
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 3楼 Gen404
那第二行就用%d可以了~~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-05-16 18:14
Emotiona
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:311
专家分:581
注 册:2017-3-7
收藏
得分:4 
输入还是scanf。 存之前你要识别,输入的内容是以#开头的单词, 以#开头不是单词,纯数字。识别出来了,直接存入结构体成员就行了
2017-05-16 20:21
烟雨晨曦
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:7
帖 子:150
专家分:599
注 册:2017-3-5
收藏
得分:4 
不用这么麻烦
程序代码:
#include <stdio.h>

int main()
{
    char cTmp[100] = "";
    //输入字符串,输入#,,输入数字,再输入换行
    scanf("%s", cTmp);
    char cFru[50] = "";
    int nNum = 0;
    sscanf(cTmp, "%[^#]#%d", cFru, &nNum);
    printf("cFru:%s, nNum:%d\n", cFru, nNum);
    return 0;
}
收到的鲜花
  • 九转星河2017-05-16 23:38 送鲜花  3朵   附言:原来是这样理解~
2017-05-16 22:57
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 6楼 烟雨晨曦
看程序原来是这样啊~abc#123这种输入方式~~前者放入char*型里面~后者放入int型里面~~用正则表达式进行匹配表示正解~~~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-05-16 23:37
Emotiona
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:311
专家分:581
注 册:2017-3-7
收藏
得分:0 
输入还是scanf。 存之前你要识别,输入的内容是以#开头的单词, 以#开头不是单词,纯数字。识别出来了,直接存入结构体成员就行了
2017-05-17 00:20
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
收藏
得分:4 
名称改用字符数组。
if(str[0]=='#') str=str+1;
没测过。不保证能用
2017-05-17 10:44
Gen404
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2017-5-16
收藏
得分:0 
参考回复已经做出来了~谢谢谢谢~

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

2017-05-17 11:59
快速回复:萌新求指导,两行不同的类型的输入如何存入结构体??
数据加载中...
 
   



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

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