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

نام تاپیک: dev C++‎ , کتابخانه iostream را چرا نمی شناسد؟

  1. #1

    Talking dev C++‎ , کتابخانه iostream را چرا نمی شناسد؟

    سلام
    dev C++‎ , کتابخانه iostream را چرا نمی شناسد؟
    با وجود این که فراخوانی کتابخانه را به صورت #include<iostream> انجام می دهم devC++‎ به دستورات cin و cout خطا می گیرد.(نمی شناسد)، لطفا راهنمایی کنید.

  2. #2
    کاربر دائمی آواتار هم دانشگاهی
    تاریخ عضویت
    شهریور 1389
    محل زندگی
    بیرجند
    پست
    326

    نقل قول: dev C++‎ , کتابخانه iostream را چرا نمی شناسد؟

    بعد از
    #include <iostream>


    این رو هم اضافه کن :
    using namespace std;


    موفق باشی !

  3. #3
    کاربر دائمی آواتار Beginner Programmer
    تاریخ عضویت
    اردیبهشت 1392
    محل زندگی
    c:\win\system32
    پست
    140

    نقل قول: dev C++‎ , کتابخانه iostream را چرا نمی شناسد؟

    نقل قول نوشته شده توسط هم دانشگاهی مشاهده تاپیک
    بعد از
    #include <iostream>


    این رو هم اضافه کن :
    using namespace std;


    موفق باشی !
    میشه درباره این بیشتر توضیح بدید؟

  4. #4
    کاربر دائمی آواتار Beginner Programmer
    تاریخ عضویت
    اردیبهشت 1392
    محل زندگی
    c:\win\system32
    پست
    140

    نقل قول: dev C++‎ , کتابخانه iostream را چرا نمی شناسد؟

    در ضمن من اضافه کردم ولی اجرا نشد...


    #include <iostream>
    using namespace std;
    int square (int);
    int cube (int);
    int main{
    cout<<"the square of 27 is" << square(27) << endl;
    cout<<"and the cube of 27 is" << cube(27) << endl;
    return 0;
    }
    int square(int n){
    return n*n;
    }
    int cube(int n){
    return n*n*n;
    }


  5. #5

    نقل قول: dev C++‎ , کتابخانه iostream را چرا نمی شناسد؟

    سلام
    فایل را با پسوند cpp ذخیره کنید

  6. #6

    نقل قول: dev C++‎ , کتابخانه iostream را چرا نمی شناسد؟

    نقل قول نوشته شده توسط Beginner Programmer مشاهده تاپیک
    در ضمن من اضافه کردم ولی اجرا نشد...


    #include <iostream>
    using namespace std;
    int square (int);
    int cube (int);
    int main{
    cout<<"the square of 27 is" << square(27) << endl;
    cout<<"and the cube of 27 is" << cube(27) << endl;
    return 0;
    }
    int square(int n){
    return n*n;
    }
    int cube(int n){
    return n*n*n;
    }

    سلام خب مشخصه چرا اجرا نمیشه .پرانتز رو برای main نذاشتی!!!

    int main()

  7. #7
    کاربر دائمی آواتار Beginner Programmer
    تاریخ عضویت
    اردیبهشت 1392
    محل زندگی
    c:\win\system32
    پست
    140

    نقل قول: dev C++‎‎ , کتابخانه iostream را چرا نمی شناسد؟

    نقل قول نوشته شده توسط رضاس1000 مشاهده تاپیک
    سلام خب مشخصه چرا اجرا نمیشه .پرانتز رو برای main نذاشتی!!!

    int main()
    درسته مشکل حل شد و فقط اینو بگم که من مثال کتاب اموزش ++c تالیف: نل دیل-چیپ ویمز-مارک هدینتون رو عیناً وارد کردم ظاهراً این کتاب مشکل چاپی داره در ضمن لازم به ذکره که این ناشر این کتاب انتشارات دانشگاه تهران است.(چاپ پنجم)
    از همچنین کتاب معتبری چنین اشتباه چاپی بعید بود...
    ولی در کل این کتاب خیلی ریشه ای و مفهومی به اموزش ++C و حل مساله میپردازه و من به همه اونهایی که میخواهند پایه ی قوی در حل مساله و برنامه نویسی داشته باشند و یا مبتدی هستند پیشنهاد میکنم.البته شاید درک مطالب برای یک مبتدی کمی دشوار باشد اما فکر میکنم که از کتاب دیتل خیلی بهتره.
    کتاب دیتل هم کتاب واقعا خوبی هستش و جزء به جزء موارد را توضیح میدهد فقط به نظرم تنها ایراد آن این است که خیلی طولانی است و امکان تدریس آن در دانشکده ها و دانشگاها به علت محدود بودن زمان وجود ندارد و هم برای کسی هم که قصد این را دارد که سریعا از یک زبان برنامه نویسی سوئیچ(یا محاجرت کند)خیلی حوصله سربر است و مخاطب میل به خواندن آن را پیدا نمیکند.(مگر کسائی که خیلی اراده قوی دارند و محدودیت زمان ندارند.در کل فکر کنم اگر بخواهید به کلیه مطالب و نکات این کتاب (چه به صورت عملی و یا تئوری)مسلط شوید باید یه دو سالی وقت بگذارید.)
    ممنون از اینکه وقت گذاشتید و نظراتم رو مطالعه کردید امیدوارم مفید بوده باشه.

  8. #8
    کاربر دائمی آواتار Beginner Programmer
    تاریخ عضویت
    اردیبهشت 1392
    محل زندگی
    c:\win\system32
    پست
    140

    نقل قول: dev C++‎ , کتابخانه iostream را چرا نمی شناسد؟

    فقط من نفهمیدم که این دستورusing namespace std; چرا باید بعد از فراخوانی کتابخانه iostream نوشته شود و اصلا چه کاربردی دارد؟

  9. #9

    نقل قول: dev C++‎ , کتابخانه iostream را چرا نمی شناسد؟

    کم کم که جلوتر بری با مفهوم فضای نام یا namespace آشنا می شی. روشی هست برای دسته بندی کدها. مثلا شما با این عبارت می خواهید بگید که کدهایی که در گروه یا فضای نام std قرار دارند را می خواهم استفاده کنم از جمله cout

  10. #10
    کاربر جدید آواتار Hossein_A82
    تاریخ عضویت
    شهریور 1397
    محل زندگی
    بندرگز
    پست
    1

    نقل قول: dev C++‎ , کتابخانه iostream را چرا نمی شناسد؟

    نقل قول نوشته شده توسط Beginner Programmer مشاهده تاپیک
    فقط من نفهمیدم که این دستورusing namespace std; چرا باید بعد از فراخوانی کتابخانه iostream نوشته شود و اصلا چه کاربردی دارد؟
    ببین تا اون جایی که من فهمیدم موضوعش اینه . . الان برات یه کد میفرستم متوجه شی . .

    #include<iostream>

    main(){
    std::cout<<"heloo";
    }


    الان برای مثال کد بالا رو ببین . . اگه دقت کنی من داخلش دستور using namesoace std رو ننوشتم برای همین مجبور شدم اول بنویسم ::std و بعد ;"cout<<"hello رو نوشتم ولی اگه همون بالای کد using namesoace std رو بنویسی دیگه لازم نیست که اول اونو بنویسی و یه دفعه اینطوری مینویسیش :

    #include<iostream>
    using namespace std;

    main(){
    cout<<"heloo";
    }


    خب اگه دقت کنی توی کد بالایی من دیگه ::std رو ننوشتم چون که قبلا با using namespace std اون رو توی تموم کد هام قرار داده بودم و لازم نبود صداش کنم . . درواقع میشه گفت یه چیزیه که از طریقش std رو توی تموم خط کد هات فراخوانی میکنی و لازم نیست که همش صداش یزنی . . و در آخر هم اینو بگم که خب همونطور که میدونی هر دو کدی که برات فرستادم فقط hello رو چاپ میکنن و صد در صد سر این هم مشکلی نداری . . خب امیدوارم که توضیحمو فهمیده باشی و برات مفید بوده باشه . . اگر هم میخوای بدونی من اینو از کجا یاد گرفتم :
    https://www.aparat.com/v/D2eBb
    از توی آدرس بالایی بود . . آقای علی صیفی توی آپارات ++C رو توی 30 و خورده ای جلسه به صورت رایگان درس داده که میتونی بری ببینی فیلماشو . . این موضوع هم توی همون جلسه ی اول یا دوم گفت فکر کنم . .
    موفق باشی . .
    آخرین ویرایش به وسیله Hossein_A82 : یک شنبه 01 مهر 1397 در 15:25 عصر

  11. #11
    کاربر دائمی آواتار farhad_shiri_ex
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    تهران
    پست
    668

    نقل قول: dev C++‎ , کتابخانه iostream را چرا نمی شناسد؟

    نقل قول نوشته شده توسط Hossein_A82 مشاهده تاپیک
    ببین تا اون جایی که من فهمیدم موضوعش اینه . . الان برات یه کد میفرستم متوجه شی . .
    #include<iostream>

    main(){
    std::cout<<"heloo";
    }

    الان برای مثال کد بالا رو ببین . . اگه دقت کنی من داخلش دستور using namesoace std رو ننوشتم برای همین مجبور شدم اول بنویسم ::std و بعد ;"cout<<"hello رو نوشتم ولی اگه همون بالای کد using namesoace std رو بنویسی دیگه لازم نیست که اول اونو بنویسی و یه دفعه اینطوری مینویسیش :
    #include<iostream>
    using namespace std;

    main(){
    cout<<"heloo";
    }

    خب اگه دقت کنی توی کد بالایی من دیگه ::std رو ننوشتم چون که قبلا با using namespace std اون رو توی تموم کد هام قرار داده بودم و لازم نبود صداش کنم . . درواقع میشه گفت یه چیزیه که از طریقش std رو توی تموم خط کد هات فراخوانی میکنی و لازم نیست که همش صداش یزنی . . و در آخر هم اینو بگم که خب همونطور که میدونی هر دو کدی که برات فرستادم فقط hello رو چاپ میکنن و صد در صد سر این هم مشکلی نداری . . خب امیدوارم که توضیحمو فهمیده باشی و برات مفید بوده باشه . . اگر هم میخوای بدونی من اینو از کجا یاد گرفتم :
    https://www.aparat.com/v/D2eBb
    از توی آأرس زیر بود . . آقای علی صیفی توی آپارات ++C رو توی 30 و خورده ای جلسه به صورت رایگان درس داده که میتونی بری ببینی فیلماشو . . این موضوع هم توی همون جلسه ی اول یا دوم گفت فکر کنم . .
    موفق باشی . .
    جواب دادی تشکر!
    ولی یکم دقت کن تاریخ تاپیک برای چه تاریخی هست!

    در ضمن برای اطلاع دوستانی که با دستور using namespace std می خواهند از توابع ویا ماکروهای فضای نام std استفاده کنند! باید عرض کنم همیشه هم این روش خوب نیست به این علت که شما با این کار تمام توابع و هدر هایی هم که اصلا لازم ندارید هم به درون باینری فایل خودتون انتقال میدید پس از نظر تکنیکی استفاده مستقیم فضای نام با عملگر تفکیک حوزه به همراه نام توابع از نظر کارآیی بسیار بهتر می باشد.

  12. #12

    نقل قول: dev C++‎‎‎ , کتابخانه iostream را چرا نمی شناسد؟

    نقل قول نوشته شده توسط Hossein_A82 مشاهده تاپیک
    ببین تا اون جایی که من فهمیدم موضوعش اینه . . الان برات یه کد میفرستم متوجه شی . .

    #include<iostream>

    main(){
    std::cout<<"heloo";
    }


    الان برای مثال کد بالا رو ببین . . اگه دقت کنی من داخلش دستور using namesoace std رو ننوشتم برای همین مجبور شدم اول بنویسم ::std و بعد ;"cout<<"hello رو نوشتم ولی اگه همون بالای کد using namesoace std رو بنویسی دیگه لازم نیست که اول اونو بنویسی و یه دفعه اینطوری مینویسیش :

    #include<iostream>
    using namespace std;

    main(){
    cout<<"heloo";
    }


    خب اگه دقت کنی توی کد بالایی من دیگه ::std رو ننوشتم چون که قبلا با using namespace std اون رو توی تموم کد هام قرار داده بودم و لازم نبود صداش کنم . . درواقع میشه گفت یه چیزیه که از طریقش std رو توی تموم خط کد هات فراخوانی میکنی و لازم نیست که همش صداش یزنی . . و در آخر هم اینو بگم که خب همونطور که میدونی هر دو کدی که برات فرستادم فقط hello رو چاپ میکنن و صد در صد سر این هم مشکلی نداری . . خب امیدوارم که توضیحمو فهمیده باشی و برات مفید بوده باشه . . اگر هم میخوای بدونی من اینو از کجا یاد گرفتم :
    https://www.aparat.com/v/D2eBb
    از توی آدرس بالایی بود . . آقای علی صیفی توی آپارات ++C رو توی 30 و خورده ای جلسه به صورت رایگان درس داده که میتونی بری ببینی فیلماشو . . این موضوع هم توی همون جلسه ی اول یا دوم گفت فکر کنم . .
    موفق باشی . .
    توضیحاتی که دادید درست بود اما مفهومی نبود . شما فقط گفتید که این کد برای برنامه لازمه و میشه به چند صورت اون رو نوشت ، اما سوال اون عزیز اینه که اصلا چرا این کد لازمه ؟ (صرف نظر از تاریخ تاپیک !) من جواب ایشون رو میدم تا همه بتونن استفاده کنن.
    خب این کد لازمه چون شما به فضای نام std نیاز داری ! فضای نام در واقعیت و در ذهن ما هم هست و جایی است که در آن ، چیزی که می تواند هزاران معنی داشته باشد ، به گونه ایی تعریف شده که وقتی از ان نام برده می شود ، کامپایلر و یا حتی شما تصوری پیش فرض از ان داشته باشید و برایتان نامفهوم و شک برانگیز نباشد . مثلا همان cout را در نظر می گیریم . cout در واقع شیء ای از کلاس ostream هست که در فایل سرایند iostream تعریف شده . iostream ترکیبی از کتابخانه های ostream و istream هست ، که در این دو کتابخانه کلاس های ostream و istream تعریف شده اند ، سپس در iostream به کار گرفته شدند . (یعنی این دو شی در iostream (داخل فضای نام std)تعریف شده اند و شما نمی توانید مثلا فقط با اضافه کردن ostream به برنامه از cout استفاده کنید . یک نکته ی دیگه : >> و << در واقع برای کار دیگری ساخته شدند و در کلاس های istream و ostream گرانبار یا overload شدند (نمی دونم اصطلاح گرانبار درسته یا نه ) یعنی طوری تعریف شدند که وقتی برای اشیاء cin,cout استفاده شدند کار خروجی و ورودی را انجام دهند به جای کار اصلیشان) حالا ما فقط فایل iostream را به برنامه اضافه کردیم ، نه فضای نام std که در ان این دو شیء تعریف شدند . به همین سبب ، کامپایلر این دو شی را نمی شناسد پس اگر شما مثلا دستور :
     cout << "Hi";

    را نوشتید ، دارید راجع به شیء ای که خودتان قبلا ساخته اید صحبت می کنید ، پس کامپایلر شروع به جستجو در کد هایتان می کند و چون شما این شیء را تعریف نکردید ، از شما ایراد می گیرد . اما با اضافه کردن فضای نام std به این صورت :
    using namespace std;

    به او می فهمانید که اگر cout یا cin را تعریف نکردید ، از همان چیزی که در فضای نام std تعریف شده می خواهید استفاده کنید و به کامپایلر می گویید که تصوری از cout به عنوان شیء ای از کلاس ostream داشته باشد .
    (در واقعیت هم همین طور است ! اگر به شما بگویند که "برو و به اقای ریچارد سلام کن "، شما گیج می شوید و فورا می گویید که "ریچارد کیست ؟ ". اما وقتی بگویند که فامیل ان شخص مثلا اسمیث است و سپس به او اشاره کنند ، فضای نامی در ذهن شما به نام ریچارد ساخته میشود که در ان فامیل و قد و قیافه و .. ریچارد توصیف شده است . حال هر وقت بگویند ریچارد کیست یا حتی ریچارد اسمیث کیست ؟ شما ان شخصی که می شناسید را توصیف می کنید با این که هزاران ریچارد اسمیث در دنیا وجود دارند ! ممکن است کسی به شما بگوید به ریچارد اسمیث تلفن کنید . شما شماره ی یک ریچارد اسمیث را می دانید . حال چون ان شخص به شما شماره ی تلفن ریچارد را نمی دهد شما هم فرض را بر فضای نام ذهنی خود گذاشته و تصور می کنید او همان ریچارد است در صورتی که ممکن است نباشد !)
    البته این فضای نام فقط برای این دو شیء تعبیه نشده و شاید هر فایل سرایندی در C++‎‎‎ که استاندارد باشد شما برای استفاده از محتویاتش باید از این فضای نام استفاده کنید تا به کامپایلر بگویید که چیز هایی که از ان استفاده می کنید قبلا تعریف شده اند و استاندارد هستند و شما یا کس دیگری (به طوری که جزو استاندارد های زبان نباشد) ان ها را نساخته اید .
    در واقع می توانستند این دو شیء را در کتابخانه ی iostream بسازند اما آن را در فضای نام std ساخته اند تا نشان بدهند این دو شی جزوی از استاندارد های زبان هستند .
    فضای نام های دیگری هم وجود دارند و شما هم می توانید فضای نام بسازید .
    امیدوارم که برای هر کسی مفید واقع بشه
    در ضمن من به شما آقای Hossein_A82 توصیه می کنم از منابع انگلیسی استفاده کنید چون کاملتر و بهتر توضیح می دهند همچنین از نظر من بهتره با متن اموزش ببینید نه ویدیو چون در ویدیو به دلایلی یک سری چیز ها گفته نمی شه .

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

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