C++——循环的经典应用

简介: C++——循环的经典应用

client.cpp

#include  <iostream>
#include  <Windows.h>
#include <string>
using namespace std;
int main (void){
       string pwd;
       while (1) {
              cout << "Please input your password: ";
              cin >> pwd;
              if (pwd == "000123") {
                     break;
              } else {
                     cout << "Password error." << endl;
              }
       }
       cout << "login success" << endl;
       cout << "1. 注册" << endl;
       cout << "2. 管理" << endl;
       cout << "3. 查询" << endl;
       cout << "4. 删除" << endl;
       system("pause");
       return 0;
}

crack.cpp

#include <iostream>
using namespace std;
int main(void) {
         char pwd[7];
         char dict[64]; //10+26+26+1 = 63;
         char tmp[32];
         int index = 0;
         for (int i=0; i<10; i++) {
                  dict[index++] = '0' + i;
         }
         /*
         for (int i=0; i<26; i++) {
                  dict[index++] = 'a' + i;
         }
         for (int i=0; i<26; i++) {
                  dict[index++] = 'A' + i;
         }
         dict[index++] = '_';
         */
         dict[index] = '\0';
         int n = index; // 字符个数
         for (int p1=0; p1<n; p1++) {
                  for (int p2=0; p2<n; p2++) {
                           for (int p3=0; p3<n; p3++) {
                                    for(int p4=0; p4<n; p4++) {
                                             for(int p5=0; p5<n; p5++){
                                                      for (int p6=0; p6<n; p6++) {
                                                               tmp[0] = dict[p1];
                                                               tmp[1] = dict[p2];
                                                               tmp[2] = dict[p3];
                                                               tmp[3] = dict[p4];
                                                               tmp[4] = dict[p5];
                                                               tmp[5] = dict[p6];
                                                               tmp[6] = '\0';
                                                               cout << tmp << endl;
                                                      }
                                             }
                                    }
                           }
                  }
         }
         return 0;
}

在控制台:

crack.exe  |  client.exe

相关文章
|
24天前
|
存储 并行计算 安全
C++多线程应用
【10月更文挑战第29天】C++ 中的多线程应用广泛,常见场景包括并行计算、网络编程中的并发服务器和图形用户界面(GUI)应用。通过多线程可以显著提升计算速度和响应能力。示例代码展示了如何使用 `pthread` 库创建和管理线程。注意事项包括数据同步与互斥、线程间通信和线程安全的类设计,以确保程序的正确性和稳定性。
|
5月前
|
存储 安全 C++
C++中的引用和指针:区别与应用
引用和指针在C++中都有其独特的优势和应用场景。引用更适合简洁、安全的代码,而指针提供了更大的灵活性和动态内存管理的能力。在实际编程中,根据需求选择适当的类型,能够编写出高效、可维护的代码。理解并正确使用这两种类型,是掌握C++编程的关键一步。
74 1
|
6月前
|
C++
C++中的封装、继承与多态:深入理解与应用
C++中的封装、继承与多态:深入理解与应用
150 1
|
1月前
|
存储 编译器 C++
【C++篇】揭开 C++ STL list 容器的神秘面纱:从底层设计到高效应用的全景解析(附源码)
【C++篇】揭开 C++ STL list 容器的神秘面纱:从底层设计到高效应用的全景解析(附源码)
54 2
|
2月前
|
编译器 C++
【C++核心】函数的应用和提高详解
这篇文章详细讲解了C++函数的定义、调用、值传递、常见样式、声明、分文件编写以及函数提高的内容,包括函数默认参数、占位参数、重载等高级用法。
22 3
|
3月前
|
存储 算法 C++
C++ STL应用宝典:高效处理数据的艺术与实战技巧大揭秘!
【8月更文挑战第22天】C++ STL(标准模板库)是一组高效的数据结构与算法集合,极大提升编程效率与代码可读性。它包括容器、迭代器、算法等组件。例如,统计文本中单词频率可用`std::map`和`std::ifstream`实现;对数据排序及找极值则可通过`std::vector`结合`std::sort`、`std::min/max_element`完成;而快速查找字符串则适合使用`std::set`配合其内置的`find`方法。这些示例展示了STL的强大功能,有助于编写简洁高效的代码。
50 2
|
3月前
|
存储 搜索推荐 Serverless
【C++航海王:追寻罗杰的编程之路】哈希的应用——位图 | 布隆过滤器
【C++航海王:追寻罗杰的编程之路】哈希的应用——位图 | 布隆过滤器
37 1
|
3月前
|
存储 编译器 C++
C++多态实现的原理:深入探索与实战应用
【8月更文挑战第21天】在C++的浩瀚宇宙中,多态性(Polymorphism)无疑是一颗璀璨的星辰,它赋予了程序高度的灵活性和可扩展性。多态允许我们通过基类指针或引用来调用派生类的成员函数,而具体调用哪个函数则取决于指针或引用所指向的对象的实际类型。本文将深入探讨C++多态实现的原理,并结合工作学习中的实际案例,分享其技术干货。
74 0
|
3月前
|
JSON Android开发 C++
Android c++ core guideline checker 应用
Android c++ core guideline checker 应用
|
4月前
|
存储 安全 编译器
【C++入门 四】学习C++内联函数 | auto关键字 | 基于范围的for循环(C++11) | 指针空值nullptr(C++11)
【C++入门 四】学习C++内联函数 | auto关键字 | 基于范围的for循环(C++11) | 指针空值nullptr(C++11)