| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2846 人关注过本帖
标题:scanf的%s的问题!
取消只看楼主 加入收藏
johnzsj
Rank: 2
等 级:论坛游民
帖 子:54
专家分:27
注 册:2017-2-10
结帖率:93.75%
收藏
已结贴  问题点数:20 回复次数:3 
scanf的%s的问题!
今天,读了c primer plus 不能理解:不能通过字段宽度使得scanf读入超过一个字长的输入?请问该怎么正确理解这一段话?经过实验貌似也不能证明这个观点!

注:本人是64位的操作系统(八个字节);一个英文字母是一个字节;

实验程序:
#include<stdio.h>

int main()
{
    int a[100];

    scanf("%9s",a);

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


    return 0;
}

结果:
lalalalalal
lalalalal
Press any key to continue
搜索更多相关主题的帖子: 英文字母 continue return 操作系统 
2017-03-27 16:45
johnzsj
Rank: 2
等 级:论坛游民
帖 子:54
专家分:27
注 册:2017-2-10
收藏
得分:0 
回复 2楼 renkejun1942
但那本书中说只能读取一个字长的输入,我电脑是64位的一个字长为八个字节,现在我限制宽度为九个字节但奇怪的是被读取出来了(不是应该只能读八个字节的吗!),我不理解这个问题?
2017-03-27 16:53
johnzsj
Rank: 2
等 级:论坛游民
帖 子:54
专家分:27
注 册:2017-2-10
收藏
得分:0 
回复 4楼 renkejun1942
那请问这句话怎样正确理解:不能通过字段宽度使得scanf()用一个%s,说明符读取多于一个字的输入。怎么改他就对了?
2017-03-27 17:00
johnzsj
Rank: 2
等 级:论坛游民
帖 子:54
专家分:27
注 册:2017-2-10
收藏
得分:0 
回复 5楼 renkejun1942
貌似读取多于一个字长也没什么影响,还是输出了设定字段宽度的宽度,是ide优化的问题还是c的一种非强制性的规范
2017-03-27 17:08
快速回复:scanf的%s的问题!
数据加载中...
 
   



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

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