std چیه؟ تابع هست؟ کارش چیه؟ اگه فراخوانی نشه ، چه اشکالی داره؟ مثلا بجای std::cout فقط cout فراخونی و استفاده شه
و اینکه دو علامت نقل قول وسط std و تابع مورد نظر چیه؟
Printable View
std چیه؟ تابع هست؟ کارش چیه؟ اگه فراخوانی نشه ، چه اشکالی داره؟ مثلا بجای std::cout فقط cout فراخونی و استفاده شه
و اینکه دو علامت نقل قول وسط std و تابع مورد نظر چیه؟
درود دوست عزیز
STD یا C++ Standard Library مجموعه ای از توابع و کلاس های از پیش تعریف شده خود C++ هست، به عبارتی برخی توابع و کلاس های آماده و قابل استفاده
:: برای دست یابی/فراخوانی توابع و کلاس های این مجموعه است؛ طبق استاندارد خود C++ باید ذکر بشه اما با برخی تغییرات میشه بدون :: هم استفاده کرد البته بازم به استاندارد(نگارش) این زبان و کامپایلر بر میگرده
فکر میکنم این طوری باشه دوست عزیز:
اگر تو برنامتون کتابخونه iostream.h رو include کرده باشید میتونید cout رو به صورت مجزا استفاده کنید وگرنه باید به صورتstd::cout استفاده کنید.
برای اطلاعات بیشتر بهبرای مشاهده این لینک/عکس می بایست عضو شوید !برای عضویت اینجا کلیک کنید ] هم یه سری بزنید بد نیست.
ممنون گلپسران
والا من که نمیدونم . نظر شما دو تا هم کاملا متفاوت هه
من تازه ++C رو شروع کردم و هیچ چی ازش نمیدونم. نرم افزارمم Microsoft Visual C++ هه چون فک نکنم بیشتر از این نرم افزار ، توابع آماده ای نرم افزار دیگه بهم بده. میده؟ طبعا باید کمپایلر همین نرم افزار باشه دیگه. درسته؟
حوصله ی خوندن متن انگلیسی رو ندارم غیر از اینکه مجبور شم :Love-ssa~! (1):
الان کدوم نظر درسته؟
راستی تو Visual C++ اگه میشه قسمت های مختلف شو توضیح بدین . ینی قسمت های Store App و Alt و CLR و General و MFC و ... برا چیه؟
و مهمتر اینکه چجوری میشه یه پروژه ساخت و چند تا اشیاء (منظورم شی گرایی نیست) مثل دکمه و text و ... اضافه کرد و تو اونا کد نوشت که مثلا هر وقت روی دکمه ی مورد نظر کلیک شه ، کدهاش اجرا شه؟ قبلا قسمتی بنام form داشت اما الان توی Microsoft Visual C++ 2013 میبینم ، انگار نداره. کجاست؟ و کلا بصورت command line یا همون کنسول نباشه
درود
شما نگفته بودین که از چه کامپایلر یا IDE استفاده می کنید و فکر کردم سوالتون بنیادین و چرایی اون هست
لزوم بکار بردن :: به کامپایلر و اعلان های پیش فرض بر میگرده و والی مطمئناً خیلی وقت گیر هست و هیچ برنامه نویسی نمیاد تک تک دستورات رو با اسم کتابخانه ها بکار ببره.
چون تازه شروع کردین فعلا لازم نیست وارد جزئیات بشید و با آوردن
using namespace std;
در ابتدای کد(اعلان)، اون کتابخانه در پروژه شما قابل دسترسی خواهد بود و دیگه نیازی به :: نیست، این دستور فایل stdlib.h که مروبط به خود C++ هست رو به پروژه شما اضافه میکنه و هر تابع و کلاسی که تو اون هست رو می تونید مستقیماً استفاده کنید.
کافیه که در همه پروژه ها اعلان های زیر رو داشته باشید تا توابع اولیه ورودی/خروجی در دسترس باشه:
#include <stdlib.h>
#include <stdio.h>
#include <iostream.h>
:give_rose:
همین اول سراغ فرم و رابط کاربری ویژوال نرید و از کنسول شروع کنید، بسته به منبعی که برای یادگیری استفاده می کنید، توصیه من کامپایلرهای ساده تر نظیر Borland هست بعدا برید سراغ ویژوال استودیو
پس منظورش از std ، کتابخونه stdlib هستنقل قول:
آها ینی میشه بجای
using namespace std;اینجوری هم نوشت ؟ :
حالا تو کتابخونه stdlib.h چه توابعی موجوده که برای نام بردن cout اول باید اونو فراخونی کرد؟ آخه من تو borland دیدم که بدون استفاده از std مستقیم مینویسن coutکد:#include<stdlib.h>
چرا؟نقل قول:
اگه میشه بگو این کار با قسمت form امکان پذیره یا نه؟
و اینکه تو نسخه 2013 اصلا form داره؟ من که میگردم پیدا نمیکنم
اتفاقا من از محیط غیر بصری خوشم نمیاد و یکی از عواملی که از ویژال سی ++ استفاده میکنم ، همین قابلیت شی هاش به اضافه ی توابع و کتابخونه هاشه (برنامه نویسی بدون استفاده از اشیاء و توابع آماده لذت نداره)
گلپسران جواب بدین دیگه
راستی ویژال سی ++ ، ویندوز فورم اپلیکیشن نداه؟ انگار فقط سی شارپ اینو داره؟ ینی با ویژال سی ++ نمیشه اشیایی مثل دکمه و ... ساخت؟
با ویندوز فورم اپلیکیشن ،شی میسازن دیگه؟ درسته؟
این چرا ارور میده؟ :
کد:#include "stdafx.h"
#include <iostream>
int _tmain(int argc, _TCHAR* argv[])
{
std::cout << "1234\n"
return 0;
}
فهمیدم سینتک نزاشتم :Love-ssa~! (1):
یاد لوا بخیر . عجف زبون کنار بیا ای بود. ناز و عشوه ی سینتک و تابع اصلی و فراخونی سر فایل و ... نمیومد :Love-ssa~! (1):
یه سئوال دیگه داشتم . انگار تابع cout و ... تو فایل iostream.h هه
مگه همه ی تابع ها نشونه شون این نیست که با دو علامت پرانتز تعریف میشن؟ پس اینا چرا پرانتز ندارن؟ سئوال پست اول ام هم پابرجاست
آقایون چرا تابع این جور نوشته میشه مشکلی نداره :
اما وقتی تابع Add را بعد از تابع اصلی بخایم بنویسیم ، باید پیش اعلان کنیم تابع Add رو ؟ (نوع مقادیرشو مشخص کنیم)کد:#include "stdafx.h"
#include <iostream>
int Add(int num1, int num2)
{
int addnum;
addnum = num1 + num2;
return addnum;
}
int _tmain(int argc, _TCHAR* argv[])
{
int a=2;
int b=3;
int c=Add(a,b);
std::cout << "c= "<<c<<std::endl;
return 0;
}
ینی این جوری مشکل داره چرا؟ :
تا اینکه این جوری پیش اعلان کنیم :کد:#include "stdafx.h"
#include <iostream>
int _tmain(int argc, _TCHAR* argv[])
{
int a=2;
int b=3;
int c=Add(a,b);
std::cout << "c= "<<c<<std::endl;
return 0;
}
int Add(int num1, int num2)
{
int addnum;
addnum = num1 + num2;
return addnum;
}
کد:#include "stdafx.h"
#include <iostream>
int Add(int, int);
int _tmain(int argc, _TCHAR* argv[])
{
int a=2;
int b=3;
int c=Add(a,b);
std::cout << "c= "<<c<<std::endl;
return 0;
}
int Add(int num1, int num2)
{
int addnum;
addnum = num1 + num2;
return addnum;
}
من چرا اولین بار تو vc++ کد مینویسم ، درست عمل میکنه اما وقتی دوباره ویرایشش میکنم ، تغییراتش اعمال نمیشه؟
لازمه که بگم موقع کامپایل ، یه پیام که همیشه میداد رو غیر فعال کردم . انگار از اون موقع به بعد این طور شد!
درود
پاسخ
برای مشاهده این لینک/عکس می بایست عضو شوید !برای عضویت اینجا کلیک کنید ]
بیشتر به خاطر بحث های کامپایلر ی هست.... از قدیم من یادم هست بوده و و باید الگو رو تعریف کرد در مواقعی که تابع خارج قرار میگیره
فعلا در ابتدا ی شروع زبان برنامه نویسی ، نیاز به درگیر شدن با این مسائل نیست...(از نظر من)
ممنوننقل قول:
فک کنم بخاطر اینه که بعد از فراخونی تابع ، نوشته شد
بله کامپایل نا دیده میگیره ، اون قسمت رو هنگام کامپایل کردن کد ها.نقل قول:
- - - Updated - - -
نیازمند توضیحات بیشتر و عکس(در صورت لزوم فیلم کم حجم)تا متوجه مشکل شویم.نقل قول:
برای استفاده از getch باید چی کار کرد؟
فایل اجرایی (exe) کجا ایجاد میشه که خودمون جداگانه اجرا کنیم؟
سلامکد:#include <iostream>
int Add(int, int);
int main()
{
int a=2;
int b=3;
int c=Add(a,b);
std::cout << "c= "<<c<<std::endl;
getchar();
return 0;
}
int Add(int num1, int num2)
{
int addnum;
addnum = num1 + num2;
return addnum;
}
در مسیر ی که پروژه رو ذخیره کردی، بعد از اجرا یا Build کردن اون، پوشه Debug و اونجا فایل EXE با نام خود پروژه موجود است.
با سلام!
سجاد جان چرا اینقدر پراکنده سوال پرسیدی...:1. (27):
اینا الگوی پروژه رو مشخص می کنن. توضیحات بیش تر در پیوند زیر:نقل قول:
برای مشاهده این لینک/عکس می بایست عضو شوید !برای عضویت اینجا کلیک کنید ]
داره! میشه با C++ هم فرم ساخت. وقتی داری پروژه رو ایجاد می کنی از بخش Visual C++ زیر شاخه ی Win32، گزینه ی Win32 Project رو انتخاب کن. بعد از ایجاد پروژه کلید های ترکیبی Ctrl+Shift+A رو همزمان پایین نگه دار و در پنجره ی باز شده، از قسمت Visual C++ زیر شاخه ی UI، گزینه ی Windows Form رو به پروژه اضافه کن.نقل قول:
فکر کنم دوستان در پست 2 و 3 به خوبی جواب دادن و این جواب ها نه تنها متناقض نبودن بلکه هم دیگه رو تکمیل می کردند. پیشنهاد می کنم دوباره بخونی.نقل قول:
موفق باشی
آرمین
ممنون گلپسران
چرا تو ++C حلقه for رو به این شکل ها بنویسیم مورد دار داره؟ :
یاکد:for (int i = 1;5;i++)
{
cout << i;
}
و حتما باید این طور نوشت :کد:for (int i = 1;i=5;i++)
{
cout << i;
}
ینی اگه کسی نخاد علامت => رو بزاره و فقط علامت = رو بزاره ، راهی نداره؟ در صورتی هه که کامپایلرش موقع اجرا گیر نمیده اما عجیب و قریب اجرا میشه و با تعداد تکرار بسیار زیادکد:for (int i = 1;i<=5;i++)
{
cout << i;
}
اما هیچ چی به خوش ترتیبی و خوش دستی و سادگی زبان لوا نمیشه :great: با اونکه از زبان C ساخته شد اما یه آرایه اش هم ساده تر و هم منعطف تر از این زبانه و هم آرایه ی لوا برابری میکنه با آرایه و هم استراکچر زبان ++C و حتی بسیار گسترده تر و منعطف تر از این دو
همیشه برام سئواله که چجوری میشه که لوا که تو C نوشته شد ، این قدر به سینتک ها گیر نمیده (تقریبا میشه گفت سینتک پایانی تابع ها و متغییرها رو نداره ومن حتی یه بارم نزاشتم و هیچ گیری نداد) اما C یا ++C خودشون به شدت گیر میدن؟!!!
دومین سئوال اینکه چجوری حفظ کردین که تو این همه توابع و فضای نام بسیار زیاد ، کدوم تابع ، توی کدوم هدر فایل هه؟ این برام سخته و هم گیج کننده هست که حفظ کنم کدوم تابع توی کدوم هدر فایل هست که قبلش اون هدر رو تو پیش پردازنده بیارم. (اگه پیش پردازنده ی مورد نظر پیوست نشه که حتی اسم اون تابع رو توی لیستش وقتی شروع به نوشتن میکنیم هم نمیاره). من حتی گاها اسم تابع رو هم اول شو برام سخته به یاد بیارم. مثلا تابع setprecision که تو هدر iomanip هست رو هنوزم به زور نتونستم اسم این دو رو حفظ کنم
روش راحت تر برا یادگیری و به یادآوری تابع و هدر فایل اش نیست؟ ینی این همه برنامه نویس های ++C این همه هدر و نام تابع هاشونو دونه دونه حفظ میکنن؟
درباره ی ورودی تابع چی؟ توی توضیحات tooltip اون تابع که توی ویژال استودیو میاره ، تقریبا چیزی نمیفهمم
نقل قول:
i=5 اصلا شرط نیست بلکه مقدار 5 رو در i می ریزه و خروجی 1 رو میده (که همیشه صحیح است) و لوپ تا ابد ادامه پیدا می کنه. اگه میخواید شرط کنید باید i==5 بگذارید (که اگه بگذارید در لوپ بالا چون شرط غلط است لوپ هیچ وقت اجرا نمیشه و سریعا ازش رد میشه). وقتی فقط 5 می گذارید شرط همیشه صادق است و هیچ وقت از لوپ بیرون نخواهد رفت.
اسم ها رو با تمرین یاد می گیرید ولی لزومی نداره بلد باشید. همیشه موقع برنامه نویسی documentation یا Google !! جلوتون لازمه باز باشه. هیچ کس همه چیز رو حفظ نیست.
ممنوننقل قول:
google باز باشه ، چه کمکی بهم میکنه که بفهمم کدوم تابع ، تو کدوم هدر هست که لازم نباشه حفظ اش کنم؟
documentation منظورت راهنمای vs هه؟
سرچ می کنید و پیدا می کنید. documentation های زیادی برای ++C هست:نقل قول:
برای مشاهده این لینک/عکس می بایست عضو شوید !برای عضویت اینجا کلیک کنید ]
برای مشاهده این لینک/عکس می بایست عضو شوید !برای عضویت اینجا کلیک کنید ]
برای مشاهده این لینک/عکس می بایست عضو شوید !برای عضویت اینجا کلیک کنید ]
نه
من اگه اول کلمه ی هدر فایل مربوطه یا اول کلمه ی تابع مربوطه رو یادم بیاد که بقیه اش تو لیست tooltip ویژال استودیو برام لیست میشه و میتونم پیداش کنم
مشکل من اینه که اگه اول کلمه ی تابع مورد نظر یا اول کلمه ی هدر فایل یادم نیومد چی کار کنم؟ یا اینکه ندونم و یا فراموش کنم که کدوم تابع تو کدوم هدر فایل هست چی؟ با توجه به اینکه تعداد بسیار بسیار زیادی هدر و مخصوصا تابع داریم!!
ســـــــــــرچ کنید!نقل قول:
function_name C++ which header file
پیدا می کنید! اگه نمی دونید اسم تابع چیه سرچ کنید:
++How to compare strings in C
++How to parse string to double in C
How to force a thread to terminate in C++11
how to generate a random number from normal distribution in C++11
پیدا می کنید!
این کد ، متغییر YearGain اش چرا کار نمیکنه؟
همش مقدار اولیه اش که 9 هست میشه و تغییر نمیکنه :
کد:#include "stdafx.h"
#include<iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int CurAccount = 1000,YearGain=0;
for (int i = 1; i <= 10;)
{
YearGain=CurAccount*(5 / 100);
cout << "Sode " << i << " : " << YearGain << endl;
CurAccount = CurAccount + YearGain;
cout << "Sepordeh Sale "<<i<<" : "<<CurAccount << endl;
i++;
}
getchar();
return 0;
}
با سلام!نقل قول:
مشکل به خاطر خطی است که با رنگ قرمز مشخص شده. چون متغیر ها از نوع int تعریف شدن، مقدار اعشاری در اون ها قابل قبول نخواهد بود. لذا وقتی مقدار داخل پرانتز یعنی تقسیم 5 بر 100 حساب میشه مقدار صحیح اون در آن واحد حساب میشه که برابر با صفره و سپس در مقدار متغیر CurAccount ضرب میشه. از طرفی می دونیم که ضرب صفر در هر عدد تعریف شده صفر خواهد بود. با اجرای برنامه در کل حلقه مقدار YearGain صفر خواهد بود (نمی دونم چرا نوشتی 9 !).
پرانتز رو برداری مشکل به نظر حل بشه:
کد:YearGain = CurAccount * 5 / 100;