| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1106 人关注过本帖
标题:有没有可能将%s设置一个默认值,如果scanf没有输入,则取这个默认值
只看楼主 加入收藏
oszc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:111
专家分:154
注 册:2011-4-15
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:8 
有没有可能将%s设置一个默认值,如果scanf没有输入,则取这个默认值
比如我有
sscanf(str , "%s%s", a,b)

只输入一个值 那么b必然显示乱码,有没有可能b,赋值一个默认的值呢,
我想过在sscanf前面加一句 strcpy(b,""), 但是显然那后面sscanf的乱码会覆盖这个值
2011-06-13 15:01
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:5 
我只知道加*可以跳过,你可以用C++的默认参数达到这个目的。

My life is brilliant
2011-06-13 15:04
oszc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:111
专家分:154
注 册:2011-4-15
收藏
得分:0 
like this?   *%s

[ 本帖最后由 oszc 于 2011-6-13 15:11 编辑 ]
2011-06-13 15:07
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:5 
这个意思?
程序代码:
#include <stdio.h>
#include <string.h>

int main (void) {

        char _def[]="hello",str[20];
        gets(str);
        if(strlen(str)==0)
                strcpy(str,_def);

        printf("%s\n",str);

        return 0;

}

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-06-13 15:16
oszc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:111
专家分:154
注 册:2011-4-15
收藏
得分:0 
要在一个语句分别赋n个值 前一个赋值,后一个可能没有赋值,想后一个在没有赋到值情况可以取默认值,有赋值就去赋值
2011-06-13 15:22
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:5 
其实你只要在 sscanf() 之前给 a, b 赋个值就好。
如果 sscanf() 没能成功的向 a 或 b 中读取字符串,那么 a 或 b 在 sscanf() 前被赋的值不会改变
2011-06-13 15:24
oszc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:111
专家分:154
注 册:2011-4-15
收藏
得分:0 
sscanf (str ,"" "") 先读取str这个数组,那么 一定会给b赋值的吧,好像无解?
2011-06-13 15:38
chenhongzhi
Rank: 1
等 级:新手上路
帖 子:13
专家分:8
注 册:2011-6-13
收藏
得分:5 
来学习学习
2011-06-13 16:22
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
回复 7楼 oszc
你自己试试看就好了
2011-06-13 16:39
快速回复:有没有可能将%s设置一个默认值,如果scanf没有输入,则取这个默认值
数据加载中...
 
   



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

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