PDA

View Full Version : سوال: تغییر روش کدنویسی در ویرایشگر codelite



ravand
چهارشنبه 05 تیر 1392, 14:59 عصر
من میخوام در ویرایشگر codelite به صورت زیر کدنویسی کنم. چون بیشتر آموزش هایی که برای سی پلاس پلاس دیدم به همین شکل هست:
#include<iostream>
void main() {
cout<<"Sadegh";
}
ولی این ویرایشگر روش کدنویسیش با این روش فرق داره . مثلا به این شکل هست:
#include <stdio.h>

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

هر کاری میکنم نمیشه. باید چیکار کرد؟ اینم بگم که من تازه شروع به یادگیری c++ کردم.
متشکرم.

returnx
چهارشنبه 05 تیر 1392, 16:35 عصر
منظورتون دقیقا چیه!؟
در روش اول شما یک تابع main دارید که پارامتری دریافت نمیکنه و برای چاپ خروجی از تابع Cout استفاده میکنید که در سرایند iostream قرار دارد و در C++‎ اظافه شده...
در روش دوم شما یک تابع main دارید که دو پارامتر دریافت می کند ، پارامتر اول برای تعداد آرگومان های ورودی است و پارامتر دوم برای خود آرگومان های ورودی ؛ و بعد هم از تابع printf برای چاپ خروجی استفاده می کنید که در سرایند stdio موجود است و از C وجود داشته...
حالا شما دقیقا مشکلتون کجاست!؟

ravand
چهارشنبه 05 تیر 1392, 16:38 عصر
خب پس چرا من نمیتونم در ویرایشگر codelite این کدها رو وارد کنم؟
#include<iostream>
void main() {
cout<<"Sadegh";
}
شما میتونی راهنمایی کنی من چطوری این کدها رو وارد کنم؟

returnx
چهارشنبه 05 تیر 1392, 17:16 عصر
من از Code Lite استفاده نکردم اما اونچیزی که مشخصه هم C را پشتیبانی میکنه و هم C++ ؛ خوب شما بگید چه خطایی گزارش میده!؟

ravand
چهارشنبه 05 تیر 1392, 17:20 عصر
شاید مشکل از این باشه که من فرق بین کدهای c و c++ رو نمیدونم چیه؟ الان این کدهایی که بهتون دادم کدومشون سی بود و کدومشون سی پلاس پلاس؟
این اولین برنامه ای بود که من نوشتم .

returnx
چهارشنبه 05 تیر 1392, 17:30 عصر
C و C++ با هم تفاوت دارند ، اما نه خیلی زیاد...
مهم ترین تفاوت این دو زبان در این است که ، در C++ شما می توانید بصورت شی گرا کد بنویسید ولی در C نه ، البته در استاندارد های جدید C++ چیز های جدید زیادی هم اضافه شده...
در هر دو زبان سرایند ها مشترک زیادی وجود دارد ، اما یکسری از سرآیند چها مثل iostream در C++ اضافه شده...
در مجموع تفاوت بسیار زیادی با هم ندارند...
اما کد هایی که نوشتید ، در اولین کد از iostream استفاده کردید که مال C++ هست اما در کد دوم از stdio استفاده کردید که از قبل در C بود هنوزم در C++ وجود داره...
شما مقدار برگشتی کد اولتون را int بگیرید و در اخر کدتون 0 را برگردونید ببنید مشکلتون حل میشه یا نه!؟ البته اگر متن خطا را اینجا کپی کنید راحت تر میشه کمکتون کرد...

developing
شنبه 08 تیر 1392, 10:33 صبح
با سلام

من از این ویرایشگر استفاده نمی کنم اما اگه کتابخانه های ++C رو توی نصبش داشته باشه شما می تونید از هر دوتاش استفاده کنید.

اما به احتمال زیاد این هم مثل کامپایلرهای بورلند هست که
باید برای سرآیندهای داخل پوشه ی LIB از h. استفاده کنید یعنی کدتون رو به صورت زیر بنویسید باید کامپایل بشه:

احتمال هم داره که باید بین include و > یک فاصله داشته باشید.

#include <iostream.h>
void main() {
cout<<"Sadegh";
}


راستی شاید هم به دلیل اضافه نکردن فضای نام داره ازت اشکال می گیره.
اول برو اینجا (http://barnamenevis.org/showthread.php?283540-namespace-%DA%86%DB%8C%D8%B3%D8%AA-%D9%88-%D8%A8%D9%87-%DA%86%D9%87-%D8%AF%D8%B1%D8%AF%DB%8C-%D9%85%DB%8C%D8%AE%D9%88%D8%B1%D8%AF!%D8%9F)تا بدونی فضای نام چیست؟

بعد هم این کد رو قبل از تابع main بنویس.

using namespace std;

ravand
شنبه 08 تیر 1392, 11:19 صبح
کد رو به این صورت که گفته بودید نوشتم:
#include <iostream.h>
using namespace std;
void main() {
cout<<"Sadegh";
}
ولی این اخطار رو داد:

F:/c++/CodeLite/ketab/HelloWorld/main.cpp:1:22: fatal error: iostream.h: No such file or directory
امدم به این شکل نوشتم:
#include <iostream>
using namespace std;
void main() {
cout<<"Sadegh";
}
بعد دوباره این اخطار رو داد:
F:/c++/CodeLite/ketab/HelloWorld/main.cpp:3:11: error: '::main' must return 'int'
متشکرم.

saied_hacker
شنبه 08 تیر 1392, 12:36 عصر
من میخوام در ویرایشگر codelite به صورت زیر کدنویسی کنم. چون بیشتر آموزش هایی که برای سی پلاس پلاس دیدم به همین شکل هست:
#include<iostream>
void main() {
cout<<"Sadegh";
}
ولی این ویرایشگر روش کدنویسیش با این روش فرق داره . مثلا به این شکل هست:
#include <stdio.h>

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

هر کاری میکنم نمیشه. باید چیکار کرد؟ اینم بگم که من تازه شروع به یادگیری C++‎‎‎ کردم.
متشکرم.
کد اول C++‎‎ هست و اگر در کامپایلر های قدیمی مثل turbo C++‎‎ و Borland استفاده کنید هیچ مشکلی پیش نمیاد اما مثل هرچیز دیگه ای کامپایلر هام با زمان و تکنولوژی پیش میرن و تغییراتی توشون به وجود میاد
این روش دیگه در کامپایلر های جدید جواب نمیده چرا که توی ساختار هدر فایل های و ... تغییراتی به وجود اومده و دستورات داخل namespace قرار گرفتند.
پس اگر شما می خواهدید از اون دستورات استفاده کنید باید نام اون رو هم بیارید که در حال حاظر فقط std هست.
شما باید اول بعد از افزودن هدر فایل ها از این دستور اتسفاده کنید. using namespace std.
و یا راه دیگه ای که فعلا بیخیال :چشمک:


کد دوم c هست باتوجه به هدر فایل و دستور printf. هر چند که در c مرسوم نیست از مقدار بازگشتی استفاده بشه ... ( منظورم اینه که در c اصولا تابع main رو به صورت void تعریف میکنن )





کد رو به این صورت که گفته بودید نوشتم:
#include <iostream.h>
using namespace std;
void main() {
cout<<"Sadegh";
}
ولی این اخطار رو داد:

F:/C++‎‎‎/CodeLite/ketab/HelloWorld/main.cpp:1:22: fatal error: iostream.h: No such file or directory
امدم به این شکل نوشتم:
#include <iostream>
using namespace std;
void main() {
cout<<"Sadegh";
}
بعد دوباره این اخطار رو داد:
F:/C++‎‎‎/CodeLite/ketab/HelloWorld/main.cpp:3:11: error: '::main' must return 'int'
متشکرم.

با توجه به گفته ی بالا در کامپایلر های جدید iostream بدون h هست...
و تغییر دیگی که در C++‎‎ ایجاد شده ( نسبت به c )این هست که تابع main باید یک مقدار بازگشتی داشته باشه ، هر مقدار غیر 0 به معنای ناتمام ماندن برنامه ( بروز خطا در برنامه ) هست.
وقتی برنامه دستوراتش تموم میشه و به return 0 میرسه ، درواقع این قسمت باعث میشه سیستم عامل بفهمه که برنامه با موفقیت اجرا و به پایان رسیده است.


شما مشکلت احتمالا اینه که یه منبع خوب نداری ( منسجم نیست هی از این میپری رو اون هی مپیری رو این یا قدیمیه )...
اگر میخای C++‎‎ رو یاد بگیری این دوتا کتابای بدی نیستن :
C++‎‎: The Complete Reference (http://www.amazon.com/C-Complete-Reference-Herbert-Schildt/dp/0078824761?tag=s601000020-20)
C++‎‎ Without Fear: A Beginner's Guide That Makes You Feel Smart (http://www.amazon.com/Without-Fear-Beginners-Guide-Edition/dp/0132673266/ref=sr_1_fkmr1_1?s=books&ie=UTF8&qid=1372495175&sr=1-1-fkmr1&keywords=c%2B%2B+without+dear&tag=s601000020-20)

برای c :
the c programming :قلب:


هدر فایل های استاندارد زبان c و C++ :
C standard library (http://en.wikipedia.org/wiki/C_standard_library)
C++ standard library (http://msdn.microsoft.com/en-us/library/a7tkse1h(v=VS.80).aspx)

------------------------------------------------
اینجوریم مشکلت حل نمیشه درست بشین از اول کتابا رو بخون ....

ravand
شنبه 08 تیر 1392, 13:44 عصر
متشکرم خیلی کمکم کردید.
ولی این کتاب هایی که معرفی کردید خارجی هست. و نمیشه از ایران خریداری کرد. اگه یه کتاب رایگان یا حداقل ایرانی پولی معرفی میکردید بهتر بود که حداقل بشه خریداری کرد .