خطای پیدا نکردن فایل include شده در سی پلاس unable to open header file

binahayat

Active Member
مشکل با اینکلود

من تازه می خواهم سی یاد بگیرم و برای نوشتن برنامه هایم از tc++vr3.0 استفاده می کنم اما همش ارور میده .مثلا فایل stdio.h توی پوشه هست ولی ارور میده unable to open include file 'stdio.h'
 

saalek110

Well-Known Member
با سلام.
در
option
زيرمنوي
directories
آدرس پوشه ها را تنظيم كرده ايد؟معمولا در درايو سي نصب مي كنيم. بايد بشه مثلا
c:\tc\include
و پوشه بعدي هم بايد مثلا اين جوري تنظيم بشه:
c:\tc\lib
----------------------------------------
کد:
#include<stdio.h>
اين هم سينتكس
--------------------------
فعلا چيز ديگه به ذهنم نمي رسه. بيشتر توضيح بده.
مقداري از كدت را هم اگر ميشه بگذار.
.
===============
يك سرچ هم كردم. در تاپيك زير هم مشكل شما وجود داشته. ولي كامپايلرش فكر كنم فرق كنه.
http://www.inicom.net/forum/showthread.php?t=15890&page=1&pp=15
-----------------------------
 
آخرین ویرایش:

nimja

Member
یک خطا درهنگام اجرا c++(کمک کنید)

سلام
خسته نباشید
من برنامه ای نوشتم در c++ که در ابتدا از تابع iostream استفاده کردم.:
کد:
# include <iostream>
موقع اجرا ارور زیر رو میده:
unable to open iostream
اول فکر کردم که مشکل از c++ باشه، ولی با چندتا دیگه هم امتحان کردم.باز همین ارور رو داد.
در ضمن c++ من Turbo C++ V3.0 DOS Full هست.

ممنون میشم که راهنمایی کنید.
توی 5 کامپیوتر دیگه هم امتحان کردم ولی جواب نداد
ممنون
 

saalek110

Well-Known Member
دقیق نمی دونم.
من خودم تا آنجایی که یادم می آید این عبارت را استفاده نمی کردم.
شاید بسته به کامپایلر باشه طرز استفاده اش.
شما اگر می توانی بدون آن برنامه هایت را کار کنی فعلا کار کن تا بعدا قضیه اش معلوم شود.
 

ninjavb

Member
با سلام منم یه مشکل داشتم نمیخئاستم دوباره یه تاپیک دیگه بزنم این بود که این جا مینویسم. من یه برنامه ی ساده توی borland c 3. نوشتم همون اولش تو قسمت include ارور میده که نمیتونه فایلstdioرو باز کنه. ممنون میشم اگه یکی راهنمایی کنه.
 

saalek110

Well-Known Member
معمولا 2 علت دارد.

یکی اینکه پسوند دات h را بگذارید.

دوم اینکه در محیط توربوسی از منو ها دایرکتوری پوشه اینکلودها را تعیین کنید. منوی آپشن زیرمنوی دایرکتوریز. دو قسمت بشه:
c:\tc\include
c:\tc\lib
البته مسیر بسته به نصب شما دارد ولی خودش که در درایو c: نصب می کند پوشه ها همین طور خودبخود تنظیم می شود.
 

saalek110

Well-Known Member
آزمایش:
برنامه زیر را با توربو سی 3 من اجرا کردم. هیچ مشکلی نبود.
کد:
#include <[COLOR="Red"]iostream.h[/COLOR]>
#include <conio.h>

int main()
{

cout << "hello" ;

getch();

return 0;
}
سپس از پوشه:
C:\TC\INCLUDE
فایل IOSTREAM.H را کم کردم. خطا داد.

بعد این فایل را در پوشه:
C:\TC\BIN
قرار دادم. این پوشه حکم مجاور را دارد.(فایل کد من در درایو f بود ولی وقتی فایل هدر را کنارش گذاشتم باز خطا داد. شاید با ایجاد پروژه و افزودن فایل ها به آن مفهوم مجاور به معنای اصلی خود برسد ولی این طور که من کار کردم که توربو سی را باز کردم و با زدن open فایل را در کامپایلر باز کردم مجاور می شود همان پوشه bin .)
باز هم خطا داد.
کد را به این شکل کردم:
کد:
#include[COLOR="Red"] "[/COLOR]iostream.h[COLOR="Red"]"[/COLOR]
#include <conio.h>

int main()
{

cout << "hello" ;

getch();

return 0;
}
یعنی به جای علامت کوچکتر بزرگتر از دابل کوتیشن استفاده کردم تا کنار فایل هم دنبال فایل هدر بگردد. این بار اجرا شد.

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

==============
غرض از بحث:
شما اگر خطای پیدا کردن هدر دریافت می کنی هدر را پیدا کن بذار بغل فایل. البته درون کد هم از کوتیشن به جای علامت کوچکتر بزرگتر استفاده کن. این طوری دیگه مسئله پوشه اینکلود حل میشه و اگر باز حل نشد می فهمی مشکل از جای دیگر است.



در آخر فایل IOSTREAM.H را از:
C:\TC\BIN
به جای خود در:
C:\TC\INCLUDE
بازگرداندم.
 

ninjavb

Member
با سلام
من دقیقا برنامه کتاب(جعفرنژاد قمی) رو نوشتم ولی ارور میده! برنامه این هست.
کد:
#include <stdio.h>
int main ()
{
printf("c is a language");
return 0;
}
 
آخرین ویرایش:

arfan3

New Member
در c++كه توسط شركت borlandنوشته شده و يكي از ورژن هاي آن همينه كه استفاده ميكني
نيازي به گذاشتن عبارتusningnamespace std;نيست همچنين اگه مجبور نيستي از اين ورژن استفاده كني, از ورژنTurbo c++4.5استفاده كن كامپايلر اين وژن كارامد تره بعدهم همينطور كه دوستان گفتن ميتوني اينطور سرفايلتو بنويسي<iostream.h>
include# يا
"include"iostream.h#و ديگه نيازي به نوشتن عبارتusig name space std نيست.
لازمه كه بگم عبارت usig name space stdمتعلق به برنامه هايي كه با ويژوال c++ ساخت ماكروسافت مينويسند
 

ninjavb

Member
معمولا 2 علت دارد.

یکی اینکه پسوند دات h را بگذارید.

دوم اینکه در محیط توربوسی از منو ها دایرکتوری پوشه اینکلودها را تعیین کنید. منوی آپشن زیرمنوی دایرکتوریز. دو قسمت بشه:
c:\tc\include
c:\tc\lib
البته مسیر بسته به نصب شما دارد ولی خودش که در درایو c: نصب می کند پوشه ها همین طور خودبخود تنظیم می شود.
خیلی ممنون از راهنماییتون مشکل من این بود که توی درایو Cیه پوشه tc3 بود بعد داخل اون یه پوشه یtc3 دیگه ای بود که برنامه تو اون نصب شده بود. به خاطر همین نمیتونست فایل incliude رو پیدا کنه و باز کنه.
 

ITengineer

New Member
همه ی ما میدونیم که std یک فضای نام است . در بیشتر برنامه ها استفاده نمیشه هر چند تو کتابها دستورش اومده ولی اگه هم استفاده نکنید ، مشکلی پیش نمیاد . اگه میخواهید استفاده کنید چون زبان c++ یک زبان case sensitive است پس در هنگام استفاده از این دستور باید به این نکته توجه کنید و از space در تایپ فضای نام استفاده نکنید . به این صورت
std::cout
به این شکل error خواهد گرفت :
std :: cout
 

missabd

New Member
با سلام
من دارم توی برنامه ی turbo c++ کار میکنم ولی نمیدونم چرا وقتی از #include<conio.h> استفاده میکنم خطای unable to open inclide file رو میده نظرات دوستان هم خوندم که گفته بودن توی opition زیر منوی directories پوشه هارو تنظیم کنم که تنظیم هستن خودشون
ولی بازم خطا میده میشه راهنمایی کنید باید چیکار کنم؟
 

the_king

مدیرکل انجمن
با سلام
من دارم توی برنامه ی turbo c++ کار میکنم ولی نمیدونم چرا وقتی از #include<conio.h> استفاده میکنم خطای unable to open inclide file رو میده نظرات دوستان هم خوندم که گفته بودن توی opition زیر منوی directories پوشه هارو تنظیم کنم که تنظیم هستن خودشون
ولی بازم خطا میده میشه راهنمایی کنید باید چیکار کنم؟

++Turbo C رو به چه طریقی اجرا می کنید؟ با DOSBox که نیست؟
 

missabd

New Member
++Turbo C رو به چه طریقی اجرا می کنید؟ با DOSBox که نیست؟

من نرم افزار turbo c++ ide رو نصب کردم و ازین نرم افزار استفاده میکنم و برای اجرای برنامم alt+f9 رو میزنم خودش توی صفحه ی مشکی که فک کنم همون dosbox هست اجرا میکنه ولی نمیدونم چرا رو سیستم من برنامه هام اجرا نمیشه هر برنامه ای که مینویسم همین خطای unable رو میده ولی روی سیستم های دیگه اینجوری نیس.
 

the_king

مدیرکل انجمن
من نرم افزار turbo c++ ide رو نصب کردم و ازین نرم افزار استفاده میکنم و برای اجرای برنامم alt+f9 رو میزنم خودش توی صفحه ی مشکی که فک کنم همون dosbox هست اجرا میکنه ولی نمیدونم چرا رو سیستم من برنامه هام اجرا نمیشه هر برنامه ای که مینویسم همین خطای unable رو میده ولی روی سیستم های دیگه اینجوری نیس.

DOSBox معمولا میاد یک مسیر واقعی مثل D:\My Program\TC7\BIN رو روی یک درایو مجازی مثلا :Y به اصطلاح Mount می کنه و برای برنامه هایی که داخل DOSBox اجرا می شوند مسیر مثلا به Y:\TC7\BIN تغییر می کنه که مجازی ئه. شما باید مسیر Include
روی توی ++Turbo C روی مسیر مجازی اون درایو تنظیم کنید، نه مسیر واقعی، چون برنامه های داخل DOSBox به درایو های واقعی مثل \:C و ... دسترسی ندارند، مگر با تنظیمات خاص. البته مسیر هایی که نوشتم صرفا جهت مثال بود.
 

missabd

New Member
DOSBox معمولا میاد یک مسیر واقعی مثل D:\My Program\TC7\BIN رو روی یک درایو مجازی مثلا :Y به اصطلاح Mount می کنه و برای برنامه هایی که داخل DOSBox اجرا می شوند مسیر مثلا به Y:\TC7\BIN تغییر می کنه که مجازی ئه. شما باید مسیر Include
روی توی ++Turbo C روی مسیر مجازی اون درایو تنظیم کنید، نه مسیر واقعی، چون برنامه های داخل DOSBox به درایو های واقعی مثل \:C و ... دسترسی ندارند، مگر با تنظیمات خاص. البته مسیر هایی که نوشتم صرفا جهت مثال بود.

خیلی ببخشید ولی من نفهمیدم منظورتونو میشه یکم در سطح مبتدی برام توضیح بدید آخه من دانشجو ام و تازه کار با این نرم افزارو شروع کردم
شرمنده که انقد اذیتتون میکنم.
 

the_king

مدیرکل انجمن
خیلی ببخشید ولی من نفهمیدم منظورتونو میشه یکم در سطح مبتدی برام توضیح بدید آخه من دانشجو ام و تازه کار با این نرم افزارو شروع کردم
شرمنده که انقد اذیتتون میکنم.

اگه برای استفاده از DOSBox از یک ابزار Shell کمکی استفاده می کنید اطلاعی ندارم ولی اگر DOSBox رو نصب کرده اید و بخواهید مستقیما ازش استفاده کنید روش کار اینطوریه :
1 - برنامه TC رو در یک درایو از حالت فشرده خارج کنید، مثلا E:\TC یا C:\TC که زیر پوشه هایی مثل BIN و BGI داره.
2 - DOSBox رو اجرا کنید تا پنجره مشکی Command Prompt اش باز بشه.
3 - در اون پنجره باید چند تا دستور تاپیک کنید و با کلید Enter اجرا کنید. با دستور Mount اون درایوی که برنامه TC داخلش قرار داره رو روی یک درایو مجازی مثل :X سوار می کنید یا به اصطلاح Mount می کنید :
کد:
[SIZE=3]mount x [COLOR="#0000FF"]E:\[/COLOR][/SIZE]
اگه درایو دیگری بجز :E را بکار می برید موقع تاپیک کردن اون درایو رو تایپ کنید. مثلا اگر مسیر C:\TC ئه، دستور اینطوری میشه :
کد:
[SIZE=3]mount x [COLOR="#0000FF"]C:\[/COLOR][/SIZE]
حالا داخل درایو مجازی x بشوید :
کد:
[SIZE=3]X:[/SIZE]
به مسیر TC\BIN بروید (یا هر اسم دیگری که اون پوشه داره)
کد:
[SIZE=3]CD [COLOR="#0000FF"]TC[/COLOR]\BIN[/SIZE]
و TC رو اجرا کنید :
کد:
[SIZE=3]TC[/SIZE]
در برنامه باید Directories اینطوری باشه :
directories.png
 

جدیدترین ارسال ها

بالا