نمایش نتایج 1 تا 7 از 7

نام تاپیک: یه سوال خیلی ساده در مورد رشته ها

  1. #1
    کاربر دائمی آواتار amir-yeketaz
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    تهران
    پست
    508

    Exclamation یه سوال خیلی ساده در مورد رشته ها

    ببخشید یه سوال خیلی ساده داشتم
    میشه یک اسم با فاصله با scanf اسکن کرد و بعد چاپش کرد با printf
    میدونم که میشه از gets و puts استفاده کرد ولی تو ch ide یه warning میده که میگه :
    WARNING: function gets() is dangerous and should not be used, use fgets()
    حالا اگه دلیل این وارنینگو بدین ممنون میشم<بیخیالش>
    حالا نمیشه با scanf مثلا گرفت amir hosein و بعد همینو پرینت کرد
    خودم یه چیزایی میدونم ولی انجام نمیشه
    ممنون میشم اگه زودتر جواب سوال ساده منو بدین
    خیلی نوکریم

  2. #2

    نقل قول: یه سوال خیلی ساده در مورد رشته ها

    نقل قول نوشته شده توسط amir-yeketaz مشاهده تاپیک
    ببخشید یه سوال خیلی ساده داشتم
    میشه یک اسم با فاصله با scanf اسکن کرد و بعد چاپش کرد با printf
    میدونم که میشه از gets و puts استفاده کرد ولی تو ch ide یه warning میده که میگه :
    WARNING: function gets() is dangerous and should not be used, use fgets()
    حالا اگه دلیل این وارنینگو بدین ممنون میشم<بیخیالش>
    حالا نمیشه با scanf مثلا گرفت amir hosein و بعد همینو پرینت کرد
    خودم یه چیزایی میدونم ولی انجام نمیشه
    ممنون میشم اگه زودتر جواب سوال ساده منو بدین
    سلام.
    gets یک تابع deprecated و ناامن هستش، به این دلیله که شما اون پیام رو میگیرید. (برای توضیحات بیشتر به نوشته های Michael Howard و SDL رجوع کنید).

    کدی که شما میخواهید اینه، اما توجه کنید که scanf هم deprecated هستش و باید از scanf_s استفاده کنید.

    char s[80] = {NULL};
    scanf("%s", s);
    printf("The input is: %s", s);



    برای مشاهده لیست توابع ناامن و منقضی شده در CRT به این سایت رجوع کنید.

    موفق باشید.

  3. #3
    کاربر دائمی آواتار amir-yeketaz
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    تهران
    پست
    508

    نقل قول: یه سوال خیلی ساده در مورد رشته ها

    چرا مساوی با{NULL}شد نفهمیدم
    راه دیگه ای وجود نداره



  4. #4
    کاربر دائمی آواتار amir-yeketaz
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    تهران
    پست
    508

    نقل قول: یه سوال خیلی ساده در مورد رشته ها

    بابا اینم که اجرا نشد
    یعنی با زدن یه space میره تو پرینت کردنش

  5. #5

    نقل قول: یه سوال خیلی ساده در مورد رشته ها

    نقل قول نوشته شده توسط amir-yeketaz مشاهده تاپیک
    بابا اینم که اجرا نشد یعنی با زدن یه space میره تو پرینت کردنش
    سلام.
    تازه متوجه سوال شدم. ببخشید. تابع scanf کلیه whitespace ها رو ندیده میگیره. اینجا دو راه دارید، یا دونه به دونه کاراکتر ها رو بگیرید و خودتون توی یک حلقه کنترل کنید که مثلا وقتی Enter زده شد، حلقه رو بشکنید و ...

    روش دوم استفاده از gets_s هستش:


    char s[80] = {NULL};
    gets_s(s, sizeof(s) - 1);
    printf("The input is: %s", s);


    موفق باشید.

    پاورقی: چه اصراری به استفاده از scanf هستش؟

  6. #6
    کاربر دائمی آواتار amir-yeketaz
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    تهران
    پست
    508

    نقل قول: یه سوال خیلی ساده در مورد رشته ها

    ببخشید ولی اینم که اجرا نمیشه
    میشه برنامه ی کامل استفاده از این نوع اسکنو بفرستین


  7. #7

    نقل قول: یه سوال خیلی ساده در مورد رشته ها

    نقل قول نوشته شده توسط amir-yeketaz مشاهده تاپیک
    ببخشید ولی اینم که اجرا نمیشه میشه برنامه ی کامل استفاده از این نوع اسکنو بفرستین
    سلام.
    شما از چه Compiler ای استفاده می کنید؟

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •