PDA

View Full Version : سوال: اخطار Cannot open include file: 'iostream.h'



ravand
سه شنبه 04 تیر 1392, 18:53 عصر
سلام من تازه شروع کردم به یاد گیری c++ یه برنامه نوشتم اخطار میده:
#include<iostream.h>
void main() {
cout<<"Sadegh";
}
اخطاری که برنامه میده اینه:

Error TEST.CPP 1:Cannot open include file: 'IOSTREAM'
Error TEST.CPP 3:Undefined symbol 'cout'
من با برنامه ی TurboC++ کار میکنم .
نام فایلم TEST.CPP است.
متشکرم.

tdkhakpur
سه شنبه 04 تیر 1392, 19:07 عصر
فایل iostream.h رو بگرد مسیرش رو بده
این شکلی
#include<c:\\tc\\include\\iostream.h>
اگه نشد به جای .h پسوند .hpp بزار

ravand
سه شنبه 04 تیر 1392, 20:14 عصر
فایل iostream.h در این آدرس قرار داره:

F:\TurboC++‎\iostream.h
منم این شکلی نوشتم:

#include<F:\\TurboC++‎\\IOSTREAM.H>
void main() {
cout<<"Sadegh";
}
بازم کار نکرد. با پسوند .hpp هم عمل نکرد. باید چیکار کنم؟
حتی حروف بزرگ و کوچک هم رعایت کردم بازم فایده ای نداشت!

UfnCod3r
سه شنبه 04 تیر 1392, 20:26 عصر
اینو بنویس

#include<iostream>

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

ravand
سه شنبه 04 تیر 1392, 20:40 عصر
اینم تست کردم فایده ای نداشت. منم دیگه از دستش خسته شدم. کامپایلر بهتری رو سراغ ندارید؟ یه برنامه ای که حجمش زیاد نباشه. الان این Turbo شانزده مگابایت بیشتر نیست. خوبیش فقط همینه.
متشکرم.

UfnCod3r
سه شنبه 04 تیر 1392, 21:01 عصر
اگه حجم کم می خوای این دو تا خوبن
http://codelite.org
http://www.codeblocks.org
اولی 32 مگ
دومی 72 مگ
کامپیلر GCC هم همراهشونه

ravand
چهارشنبه 05 تیر 1392, 11:42 صبح
من این برنامه ی سایت http://codelite.org رو دانلود و نصب کردم ولی نمیدونم چطوری فایل رو اجرا کنم؟ برنامه رو با نامه test.cpp ذخیره کردم ولی وقتی دکمه ی مثلث شکل سبز رنگ رو کلیک میکنم هیچ اتفاقی نمی افته. حتی توی پوشه ی bin و lib هم ذخیره کردم ولی هیچ اتفاقی نیوفداد.
راستی این برنامه رایگان هست؟ یا بعد از مدتی ازم میخواد سریال وارد کنم؟
متشکرم.

ravand
چهارشنبه 05 تیر 1392, 12:11 عصر
آموزشش رو اینجا پیدا کردم : http://www.youtube.com/watch?v=7bvg8ti3T4c
متشکرم.

77777778
چهارشنبه 05 تیر 1392, 16:17 عصر
اگه هنوز مشکلت با iostream.h حل نشده این یکی فایل رو دانلود کن و پس از unrar کردنش در شاخه include نرم افزارت paste کن برای من که همین مشکلو داشتم این فایل کارساز بود

106196

ravand
چهارشنبه 05 تیر 1392, 16:51 عصر
بله مشکل حل شد ولی چرا متن sadegh رو چاپ نکرد؟ یک فایل اگزه ایجاد کرد ولی چون حالت کنسولی داره نمیشه ازش استفاده کرد . میخواستم حداقل یه نمایش از متن می تونستم ببینم. من فقط دکمه ی f9 رو زدم.

ravand
چهارشنبه 05 تیر 1392, 18:50 عصر
من امدم به پیشنهادی آقای __UFNHGGI_H__ از ویرایشگر codelite استفاده کردم . و اون کارهایی که این آموزش گفته بود رو انجام دادم:
http://codelite.org/LiteEditor/HelloWorld
و یک فایل ساختم .
کدهایی که برنامه بهم داد اینا بود:
#include <stdio.h>

int main(int argc, char **argv)
{
printf("hello world\n");
return 0;
}

ولی وقتی رفتم این کدها رو جایگزینش کنم نشد و کار نکرد و اخطار داد. در صورتی که توی اون برنامه ی TurboC++ مشکلی نداره:
#include<iostream>
void main() {
cout<<"Sadegh";
}

باید چیکار کرد؟
متشکرم.

saied_hacker
چهارشنبه 05 تیر 1392, 19:34 عصر
اینو بزن بین تغییری میکنه :

#include<iostream>
#include <conio.h>
int main() {
std::cout<<"Sadegh";
getch();
return 0;
}

از دستور getch استفاده کن تا بعد از چاپ sadegh منتظر دریافت یه کلید بمونه و بتونی نتیجه رو ببینی...

ravand
چهارشنبه 05 تیر 1392, 19:39 عصر
متشکرم برنامه کار کرد. ولی چرا قبلش کار نمیکرد؟ الان می تونید یه توضیح در مورد این کدی که نوشتید بدید؟
متشکرم.

saied_hacker
چهارشنبه 05 تیر 1392, 19:46 عصر
توی C++‎‎ (کامپایلر های جدید ) دستورات داخل NameSpace قرار گرفتن ، به اسم std برای استفاده از اونها و دسترسی داستن بهشون باید نام namespace هم ذکر بشه ...
دستوراتی مثل cin,cout که داخل std قرار دارن.
شما 2 راه دارید برای دسترسی به دستورات :
1 - استفاده از using namesapce std بالای تابع main تا دیگه لازم نباشه هی اول هر دستور std:: رو ذکز کنید.
2- اول هر دستو رstd:: رو بیارید.... ( مثل بالا)

دستور getch هم برنامه رو متوقف میکنه و منتظر دریافت یه کلید ( در واقع یه کاراکتر مثلا char c = getch()) میمونه و باعث میشه برنامه سریع بسته نشه و شما نتیجه رو بتونی ببینی .... ( این دستور در هدر فایل conio.h تعریف شده)

ravand
چهارشنبه 05 تیر 1392, 20:00 عصر
آقا من پاک گیج شدم این کتابی که گرفتم یه جورایی با این چیزایی که شما میگید فرق داره. یه کتاب اگه فارسی بود معرفی کنید اگه نبود انگلیسی.
ممنون میشم.

ravand
جمعه 07 تیر 1392, 12:32 عصر
ببخشید این دستور return 0; توی برنامه ی شما کارش چیه؟ چون وقتی این دستور رو بر میدارم هم برنامه کار میکنه. برای چی گذاشتید؟
متشکرم.

pedram125
جمعه 07 تیر 1392, 12:41 عصر
آقا من بهت کامپایلر dev رو پیشنهاد می کنم.devcpp-4.9.9.2_setup را تو گوگل سرچ کن و دانلود کن.اگه از نسخه بالا تر از این نسخه 4.9.9.2 استفاده می کنی از using namespace std; استفاده کن و در ابتدا فقط از #incloude<iostream> استفاده کن و دیگه .h رو نذار.موفق باشی

ravand
جمعه 07 تیر 1392, 14:42 عصر
آقا من بهت کامپایلر dev رو پیشنهاد می کنم.devcpp-4.9.9.2_setup را تو گوگل سرچ کن و دانلود کن.اگه از نسخه بالا تر از این نسخه 4.9.9.2 استفاده می کنی از using namespace std; استفاده کن و در ابتدا فقط از #incloude<iostream> استفاده کن و دیگه .h رو نذار.موفق باشی
خب مشکل من الان کامپایلر نیست. من برنامه ی codelite-5.1.0-mingw4.7.1 رو قبلاً نصب کرده بودم و مثل برنامه ی devcpp-4.9.9.2_setup هست و در هر دو برنامه باید اینطوری کدها رو وارد کنم:
#include<iostream>
#include <conio.h>
int main() {
std::cout<<"Sadegh";
getch();
}
و کدنویسی به این شکل در هر دو برنامه کار نمیکنه:
#include<iostream>
void main() {
cout<<"Sadegh";
}

این مشکل رو من تموم شده میدونم . من فقط از اون دوستمون پرسیدم که چرا از دستور return 0; استفاده کرده؟ در صورتی که وجودش فرقی نمیکنه!
متشکرم.

chris66001
جمعه 07 تیر 1392, 16:25 عصر
اتفاقا وجودش فرق میکنه درسته کامپایلر اروری نمیگیره ولی کلا خودش اروره
1. چون تابع از نوع Int تعریف شده باید یک مقدار Int برگردونه اومدیم و شما این تابع رو در جای دیگه فراخونی کردی "مثلا اگر صفر بود بیا این کار رو انجام بده اگه نبود یکار دیگه" اونوقته که ارور رو میبینی .
2. این Return 0; باعث اتمام دستورات میشه و برنامه بسته میشه اگر توی Turbo برنامه رو اجرا میفهمی چی میگم (که اجرا کردی و برنامه Exe باز میشه و بسته میشه) برای اینکه این اتفاق نیفته شما باید از دستور getch() استفاده کنی (جز کتابخونه Conio هست پس این کتابخونه رو هم باید Includ کنی) این دستور که جای Return 0 هست باعت میشه پس از اجرای کامل برنامه و اتمام آن صفحه Exe بسته نشه تا موقعی که Get کنه یک کاراکتری رو .