انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


توزیع گنو/لینوکس اوبونتو ۲۰ ساله شد 🎉

نویسنده موضوع: خواندن رمز عبور به صورت نامشخص از خط فرمان با c++؟ (حل شد)  (دفعات بازدید: 3826 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین khajavi

  • Sr. Member
  • *
  • ارسال: 361
  • جنسیت : پسر
    • کافه ی گنو/لینوکس
برنامه ای نوشتم که با mysql ارتباط برقرار می کنه. اما مشکلی که دارم اینه که نمیدونم چجوری رمز عبور را به صورت ستاره یا نامشخص (مثل وقتی که sudo را اجرا می کنیم) از خط فرمان کاربر دریافت کنم؟
اگه حوصله توضیح ندارید بگید مربوط به چه مبحثی میشه و keyword بدید خودم جست و جو می کنم.
« آخرین ویرایش: 29 تیر 1387، 07:23 ق‌ظ توسط khajavi »

آفلاین سعید رسولی

  • ilius, saeedgnu
  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 1543
  • جنسیت : پسر
توی اسکریپت‌های شل که از دستور read استفاده می‌کنن به همراه اوپشن s- اما ++C رو نمی‌دونم شاید بتونید از همین دستور read استفاده کنید. شایدم مجبور بشید سورس دستور read رو بخونید و توی برنامتون استفاده کنید.

آفلاین sahama

  • Hero Member
  • *
  • ارسال: 784
  • جنسیت : پسر
  • الهی به امید تو!
می تونی هر کاراکتر رو که می خونه بلافاصله اون رو پاک کنه یا جاش یه ستاره چاپ کنه ابدا  پیچیده نیست که نیاز به توضیح داشته باشه
یا علی

آفلاین khajavi

  • Sr. Member
  • *
  • ارسال: 361
  • جنسیت : پسر
    • کافه ی گنو/لینوکس
می تونی هر کاراکتر رو که می خونه بلافاصله اون رو پاک کنه یا جاش یه ستاره چاپ کنه ابدا  پیچیده نیست که نیاز به توضیح داشته باشه
بابت راهنماییتون ممنون. حالا داره یه چیزایی یادم میاد. یه تابع بود همین کار را می کردم.

آفلاین مهدی پیشگوی

  • High Hero Member
  • *
  • ارسال: 3100
  • جنسیت : پسر
  • لينوكس يعني آزادي ، امنيت
خوب هر کاراکتر رو به صورت تک تک دریافت کن و به جای نمایش اون کاراکتر ستاره بذار یادش بخیر زمان دبیرستان از این چیزها زیاد می نوشتم ;)

آفلاین hamid206

  • Jr. Member
  • *
  • ارسال: 99
در c++  استاندارد هيچ تابعي براي كاري كه شما در نظر داريد وجود ندارد . اين كه تعدادي از دوستان مي گن همچين كاري كردن احتمالا تو ويندوز بوده و با استفاده از تابع getch كه براي conio.h فكر كنم بود . در نتيجه براي كاري كه مي خواهيد انجام بديد حتما بايد از يك كتابخانه خارجي و كمكي استفاده كنيد البته فكر مي كنم كه اين هدر رو تو لينوكس هم پياده سازي كردن
http://www.google.com/search?q=conio.h+in+linux&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a

آفلاین sahama

  • Hero Member
  • *
  • ارسال: 784
  • جنسیت : پسر
  • الهی به امید تو!
یا علی

آفلاین سعید رسولی

  • ilius, saeedgnu
  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 1543
  • جنسیت : پسر
از ncurses استفاده کنید و خودتون رو راحت کنید!

آفلاین khajavi

  • Sr. Member
  • *
  • ارسال: 361
  • جنسیت : پسر
    • کافه ی گنو/لینوکس
هم میشه از ncurses استفاده کرد و هم میشه از stty -echo استفاده کرد. هر جا که بخوای رمز عبور بگیری میتونی از کد system( "stty - echo" ) استفاده کنبم
مثال:
system("stty - echo " )
cin >> password

آفلاین ابراهیم

  • High Hero Member
  • *
  • ارسال: 1295
  • جنسیت : پسر
  • راه‌رو گر صد هنر دارد توکل بایدش
    • سلام!
در صفحه‌ی ۱۳۵ از کتاب Advanced Linux Programming راه اصولی‌تر این کار (که خوندن از terminal device مربوطه، مثلاً dev/tty1/ هست) رو توضیح داده.
برای این منظور یک تابع به اسم getpass هم در unistd.h وجود داره که منسوخ (obsolete) شده و به‌تر هست ازش استفاده نکنیم.
ما زنده به آنیم که آرام نگیریم     ...     موجیم که آسودگی ما عدم ماست