هاني الأتاسي

الفرق بين <iostream.h> و <iostream>

13 ردود في هذا الموضوع

واحدة بامتداد والأخرى من غير امتداد .....؟ فما هو الفرق ..؟

للذين لايعرفون الفرق إليكم بهذه المعلومة ..

طبعا كلنا نعلم بوجود مكتبة السي++ القياسية أو Standard C++ Library . يوجد من هذه المكتبة نسختين واحدة قديمة والاخرى حديثة . القدية ظهرت مع ظهور السي++ . وكانت تحتوي على القليل من الClasses من أهمهم ال iostream و fstream و .... . ومع زيادة المتطلبات وظهور ال STL (Standard Template Library) . تم اصدار نسخة جديدة من مكتبة السي++ القياسية ..

فمن أجل أن تفرق في مابينهم في الفيجوال سي++ : إذا أردت استخدام القديمة أكتب أسماء الملفات مع ذكر الامتداد والجديدة اكتبهم من غير امتداد ..

طبعا سوف تختلف المكتبة التي سوف يربط معاها برنامجك ، ففي حالة الربط الديناميكي فسوف تستخدم هذه المكتبات :

MSVCRT.DLL : في حالة مكتبة السي القياسية .

MSCVIRT.DLL : في حالة مكتبة السي ++ القياسية القديمة .

MCVCPRT.DLL : في حالة مكتبة السي ++ القياسية الجديدة .

ولكن يحب أن ننتبه إلى موضوع وهو أنه عندما نكتب فإن المترجم يحولها إلى :


#include namespace std {}

وبالتالي فإن جميع التعريفات والتصريحات دخل المكتبة سوف تكون داخل ال std scope وبالتالي يجب أن تكتب التالي من أجل الطباعة مثلا :

std::cout :)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم.

أشكرك أخي هاني على هذه المعلومة الجديدة ووفقك الله.

مع التحيات.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

one more time I have learned some new for me thanks for that and keep on teaching people like me thanks alot.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

أود رفع هذا الموضوع ... علّ المبتدئين يستفيدون منـه .. ويعرفون الفرق بين تضمين مساحة الأسماء القياسية وعـدم تضمينها

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

موضوع قيم

جزاك الله خير أخي هاني الاتاسي

واخي سلطان الثبيتي على الرفع الجميـل

:)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

cin & cout & endl موجودة في مكتبة iostream.h

لكن أين يمكن أن أجد fixed في المكتبات القديمة ذات اللاحقة .h

?!?!

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

أمس كنت ناوي أستذكر معلوماتي في السي ++ ، فقلت نجرب نشغل ++g ونكتب كود بسيط ،

#include <iostream.h>

main()
{
 cout << "Welcom to C++ OMLX \n";
return 0;
}

وبعدين سويت كومبايل بالسطر التالي:

g++ first.cpp

سوى الترجمة ولكن شوف إيش طلع معاه:

In file included from /ArabianCD/usr/bin/../lib/gcc/i486-linux-gnu/4.0.2/../../../../include/c++/4.0.2/backward/iostream.h:31,
                from first.cpp:1:
/ArabianCD/usr/bin/../lib/gcc/i486-linux-gnu/4.0.2/../../../../include/c++/4.0.2/backward/backward_warning.h:32:2: warning: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <iostream> instead of the deprecated header <iostream.h>. To disable this warning use -Wno-deprecated.
first.cpp:7:2: warning: no newline at end of file

ولكن لما أعدت كتابة الكود السابق بطريقة محترمة B) لتصبح كالتالي:

#include <iostream>

int main()
{
 std::cout << "Welcom to C++ OMLX \n";
return 0;
}

مشى عادي جدا ، ومفيش مشاكل ،،، (h) و الناتج طبعا:

[email protected]:/ramdisk/home/arabian$ ./a.out
Welcom to C++ OMLX

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

هذا لأن أول برنامج لم تصرح في أوله عن استخدامك لstd هكذا

#include <iostream>
using namespace std;

تم تعديل بواسطه bashmohandes
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

ليست هذه هي النقطة .. لاحظ انه يستخدم .h في البرنامج الأول ...!

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

الذي جرني إلى هذا هو أن كتاب How to program C++ الإنجليزي يذكر الطريقة الثانية ، أما ترجمته من كتاب الشعاع يذكر الطريقة اﻷولى ،،، في كل الكتاب ولم يشرإلى ذلك ..!!

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

قبل مدة طويلة لم يكن هـناك مساحات الأسماء ولا القوالب ولا المتغير bool ...

هذه الأشياء الجـديدة ظهرت بعـد ذلك ... (النمط bool تم دعـمه من الأنسي حسب ما أذكر عام 98 ) .....

المشكلة إذاً في أنك استخدمت هذه التقنيات القديمـة .... على مترجم أعتقد أنه يدعـم الصورة القياسية ...

من الممكن أن هذه الطريقـة

#include <iostream.h>

قد أصبحت الآنسي لا تدعمها حالياً

مجرد افتراض

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

fixed

اليست موجوده في المكتبة

#include<iomanip.h>

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

في البرنامج السابق كانت المشكلة في نسيان كتابة int قبل ال main وليس في امتداد اسم المكتبة iostream

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
زوار
This topic is now closed to further replies.

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .