الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيفية برمجة طلب ادخال كلمة السر في الدوس

مغلق
بدأه sman93 في 14 نوفمبر 2001 · 7 رد · 2,242 مشاهدة · في ارشيف قسم C/C++
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

عملت برنامج صغير جدا وعملت له باسورد

عن طريق do whie

بس عندما يدخل المستخدم الرقم

يظهر 45211322 رقم وانا لا اريد ذلك

اريد ان يظهر *******

كيف اعملها بلغة سي

#2

استخدم التابع getch الذي يقوم بقرائة محرف من غير اظهاره ومن ثم أظهر * بداله ..

هذا المثال التاي يقبل باسورد بطول 20 محرف كحد أعظمي ومن ثم يطبع الباسورد :

#include

#include

#include

int main(int argc, char* argv[])

{

int i = 0;

char str[21]; // The string that will hold the password

printf("Enter the password : ");

do {

char ch = getch();

str[i++] = ch; // get a charachter

if (isalnum(ch)) // if the charachter is alpha or number

putch('*'); // output the star instead

else

break; // else break the loop

} while (i < 20);

str = '

Coding on the Cloud and for the Cloud!

My Blog

#3

اولاً كل عام وانت بخير يا استاذ هاني

والف الف الف شكر

والله يزيدك علم لتنفع اخوانك

#4

الي هي الباسور

وشرحها لي الاستاذ هاني بس كانت اكبر من مستواى

والمطلوب هو ان المستخدم لما يدخل كلمة المرور يطلع

**** وليس رقم1233 وهذا البرنامج المتواضع

الى احاول ان افهم عن طريقة ارجو اى احد يعرف يعل فية

او يشرحلي المضوع

#include

main ()

{

int i=999,n,c=1;

float n1,n2;

char m,s;

do { printf("Etaer password :");

scanf("%d",&n);

if(n==i) { printf("Welcome in my program");

break;}

c++; } while(c<=3);

if(n!=i) printf("wrong password");

return 0;

}

#5

:rolleyes:

أخي ممكن تقول لي أيش هو الشي الصعب أو غير المفهوم في برنامجي حتى أشرحه لك ؟؟

وعلى فكرة هذا مستحيل أن يتم باستخدام scanf ...

Coding on the Cloud and for the Cloud!

My Blog

#6

استاذى/ هاني العزيز

ممكن تعدلي على البرنامج الذي انا وضعتة

وعلى موضوع scanf كيف استقبل رقم بغير scanf

واشرحلي الدالة if (isalnum(ch وكيف استفيد منها

واخيراً

الله يعطيك الصحة والعافية

#7

بالنسبة إلى الscanf فهنا لا تفيدك لأنك تريد استقبال محرف بعد محرف أما ال scanf فيجب أن تضغط مسافة بعد كل محرف أو enter أو tab و الscanf سوف تظهر الحرف المكتوب ..

الطريقة الأخرى للادخال هي ادخال محرف محرف وتخزيتهم في مصفوفة ومن ثم تحوبل هذه المصفوفة إلى رقم .

الدالة isalnum ترجع true إذا كان المحرف هو عبارة عن رقم أو حرف أي ضمن المجال 0 إلى 9 أو a إلى z أو A إلى Z .. ويمكن كنت تكتبها كالتالي :

if ( (ch >= '0' && ch <= '9') ||
     (ch >= 'a' && ch <= 'z') ||
     (ch >= 'z' && ch <= 'Z') )
        putch('*'); // output the star instead 
else 
        break; // else break the loop

وهذا هو البرنامج كما تريد :

#include

#include

#include

#include

void GetPassword(char *str, int nMax)

{

int i = 0;

do {

char ch = getch();

str = ch; // get a charachter

if (isalnum(ch)) // if the charachter is alpha or number

putch('*'); // output the star instead

else

break; // else break the loop

} while (++i < nMax);

str = '

Coding on the Cloud and for the Cloud!

My Blog

#8

انا عــــــــــــــــــــــــــــــــــــــــــــــــــــــــاجز عن الشكر

ماادري ايش اقول

سرعة ردك تبهرني

الله لا يحرمنا منك

ويعطيك الف الف الف الف الف الف الف الف الف عـــــــــــــافية

واسمحلى اعتبرك استاذى الاول في برمجة c اذا ماعندك مانع

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…