| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2015 人关注过本帖
标题:数据流的问题求解决
只看楼主 加入收藏
美丽的舞者
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2018-5-21
结帖率:66.67%
收藏
已结贴  问题点数:8 回复次数:15 
数据流的问题求解决
#include<stdio.h>

int main(void)
{
    int a;
    char r[20];
    if(1== scanf_s(''%d",&a)
            a = 1;
    scanf_s("%s",&r);

    printf("%d,%s",a,s);
}

第一次输入"汉字"
第二次输入"英语"

输出的结果是a=1   s=汉字


我的疑问是怎么可以把第一次输错的数据从数据流中删除?
搜索更多相关主题的帖子: 数据 int 输入 汉字 英语 
2018-05-23 20:31
美丽的舞者
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2018-5-21
收藏
得分:0 
2018-05-23 20:56
nosnoy
Rank: 9Rank: 9Rank: 9
来 自:mcu
等 级:贵宾
威 望:14
帖 子:541
专家分:1178
注 册:2016-9-17
收藏
得分:4 
回复 2楼 美丽的舞者
你确定你代码运行后值是对的吗

穷举是最暴力的美学
2018-05-23 21:02
美丽的舞者
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2018-5-21
收藏
得分:0 
回复 3楼 nosnoy
恩~他直接赋值给r
2018-05-23 21:22
nosnoy
Rank: 9Rank: 9Rank: 9
来 自:mcu
等 级:贵宾
威 望:14
帖 子:541
专家分:1178
注 册:2016-9-17
收藏
得分:0 
回复 4楼 美丽的舞者
#include<stdio.h>

int main(void)
{
    int a;
    char r[20];
    if(1== scanf_s(''%d",&a)//少一个)
            a = 1;
    scanf_s("%s",&r);

    printf("%d,%s",a,s);
}

%s输出时会读取到第一个'\0'截止

穷举是最暴力的美学
2018-05-23 21:49
nosnoy
Rank: 9Rank: 9Rank: 9
来 自:mcu
等 级:贵宾
威 望:14
帖 子:541
专家分:1178
注 册:2016-9-17
收藏
得分:0 
回复 4楼 美丽的舞者
还有你输入‘汉字’后直接回车的话不会有你输入英语的机会吧

穷举是最暴力的美学
2018-05-23 21:51
美丽的舞者
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2018-5-21
收藏
得分:0 
回复 5楼 nosnoy
\0后面的数据怎么清除?不然留在数据流中会妨碍下次输入
2018-05-23 22:35
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分:4 
1是垃圾值
至于清除前面的无效输入
这里可以用
scanf("%*s");

https://zh.
2018-05-23 23:06
nosnoy
Rank: 9Rank: 9Rank: 9
来 自:mcu
等 级:贵宾
威 望:14
帖 子:541
专家分:1178
注 册:2016-9-17
收藏
得分:0 
回复 7楼 美丽的舞者
%s做输入的时候,是遇到\n才截止的;所以你的缓存区是空的;不会影响下次输入的

穷举是最暴力的美学
2018-05-24 09:05
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分:0 
回复 9楼 nosnoy
第一次输入 汉字
对应scanf %d
%d不处理这样的字符
scanf 直接跳过
到下一个scanf 这里的 %s 读取到 汉字

https://zh.
2018-05-24 09:40
快速回复:数据流的问题求解决
数据加载中...
 
   



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

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