博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
让scanf()接收空格
阅读量:6912 次
发布时间:2019-06-27

本文共 1405 字,大约阅读时间需要 4 分钟。

大家都知道scanf()遇到空格后就会结束 原因是底层函数是这么返回给你的

调用scanf()时 那现在从底层把他截获
让scanf()接收空格
让scanf()接收空格
源码://vs2015

#include 
#include
using namespace std;_ACRTIMP_ALT FILE* __cdecl __acrt_iob_func(unsigned);#ifdef __cplusplus extern "C"#endif FILE* __cdecl __iob_func(unsigned i) { return __acrt_iob_func(i);}// 全局变量char g_szId[120] = { " i love this game\n\n" };#pragma comment(lib,"user32.lib")int main(){ // 局部变量 char szBuf[120]; printf("please input password: "); scanf_s("%s", szBuf, 120); char* p = *(char**)((int)__iob_func(0) + 4); //取缓冲区中的值 __iob_func(0)输入 //__iob_func(1)输出 __iob_func(2)错误 printf("%s\n", szBuf); printf("%s", p); if (strcmp(p, g_szId) == 0) { printf("It's Right\n"); } else { printf("It's Err \n"); } system("pause"); return 0;}//vc6.0版 //#include "stdio.h"//#include
全局变量//char g_szId[120] = { " i love this game\n\n" };//#pragma comment(lib,"user32.lib")////int _tmain(int argc, _TCHAR* argv[])//{// // 局部变量// char szBuf[120];// printf("please input password: ");// scanf_s("%s", szBuf, 120);//// char* p = *(char**)((int)__iob_func() + 8);// if (strcmp(p, g_szId) == 0)// {// printf("It's Right \n");// }// else// {// printf("It's Err \n");// }// system("pause");//// return 0;//}

让scanf()接收空格

让scanf()接收空格
为什么打那么多呢 其时底层不管你打什么它都保存在那
用途:
优化下可以作为登录密码(我本来就是逆出来的)

转载于:https://blog.51cto.com/haidragon/2118179

你可能感兴趣的文章
高性能WEB开发之HTTP服务器
查看>>
Linux中ls对文件进行按大小排序和按时间排序
查看>>
Unix/Linux下安装NPM
查看>>
Apache与Tomcat区别联系
查看>>
洪水***源码
查看>>
用shell编写批量打包日志脚本
查看>>
nginx访问白屏
查看>>
Pentaho6.1中D3可视化库的集成及数据联动的实现
查看>>
部署LyncServer2013之七 启动服务和登陆LyncServer控制面板
查看>>
谷歌浏览器(chrom)快捷键整理
查看>>
Android开发者:你真的会用AsyncTask吗?
查看>>
Exchange 2016 通配符证书默认无法分配POP3服务
查看>>
什么是B端好产品
查看>>
马哥2016全新Linux+Python高端运维班第四周作业
查看>>
使用qemu工具创建虚拟机模板示例
查看>>
linux系统优化
查看>>
shell小技巧
查看>>
我的友情链接
查看>>
C++设计模式
查看>>
正则表达式(收藏版)
查看>>