View Full Version : مبتدی: چاپ حروف؟
Aliweb
جمعه 30 مهر 1389, 23:21 عصر
سلام
چرا این کد وقتی اجرا میکنی و اسم مثلا Ali بهش میدی فقط حرف اول رو چاپ میکنه؟
#include<iostream.h>
#include<conio.h>
int main()
{
char ch;
cin>>ch;
cout<<ch;
getch();
return 0;
}
Gold_cpp
جمعه 30 مهر 1389, 23:47 عصر
سلام
اگه به جای
char ch;
char ch[3];
رو بذاری مشکلت حل میشه . :چشمک:
Aliweb
جمعه 30 مهر 1389, 23:53 عصر
نمیشه کاری کرد که من هر چیزی نوشتم همون چاپ بشه بدون محدودیت
Gold_cpp
شنبه 01 آبان 1389, 00:08 صبح
خوب به جای
char ch[3];
char ch[30];
بذار .
r00tkit
شنبه 01 آبان 1389, 00:14 صبح
#include<iostream>
#include<conio.h>
int main()
{
char*ch=new char;
std::cin>>ch;
std::cout<<ch;
getch();
return 0;
}
Aliweb
شنبه 01 آبان 1389, 00:17 صبح
ببخشید دوست عزیز میشه یه مقدار مرتب بذاری من که چیزی متوجه نشدم
r00tkit
شنبه 01 آبان 1389, 00:31 صبح
این سوالت باعث شد یه نکته که نمی دونم قبلا" دیده بودم یا نه رو دوباره ببینم
اینم نکته:
int sum(int a, int b);
int subtract(int a, int b);
int mul(int a, int b);
int div(int a, int b);
int (*p[4]) (int x, int y);
int main(void)
{
int result;
int i, j, op;
p[0] = sum; /* address of sum() */
p[1] = subtract; /* address of subtract() */
p[2] = mul; /* address of mul() */
p[3] = div; /* address of div() */
و
int f()
{
return 2;
}
int main()
{
int (**p) () = new (int (*[7]) ());
p[0]=f;
p[0]();
}
خوش باشی
Gold_cpp
شنبه 01 آبان 1389, 00:59 صبح
دوست عزیز geek1982 سلام
شما در مورد کد اولتون یه متغییر پویا تعریف کردید نه یک رشته .
برای اینکه یک string بگیریم باید یک آرایه پویا تعریف کنیم نه یک متغییر !
درسته ؟:بوس:
Salar Ashgi
شنبه 01 آبان 1389, 01:34 صبح
چرا این کد وقتی اجرا میکنی و اسم مثلا Ali بهش میدی فقط حرف اول رو چاپ میکنه؟
کاراکتر ، عبارتی است که طولش همیشه یک هست ، ولی رشته دنباله ای از کاراکترهاست !
برای گرفتن و چاپ رشته :
#include <iostream>
#include <conio>
#include <string>
using namespace std;
int main(){
string str;
cout<<"Enter a name :\n";
cin>>str;
cout<<str<<endl;
getch();
}
r00tkit
شنبه 01 آبان 1389, 01:37 صبح
شما در مورد کد اولتون یه متغییر پویا تعریف کردید نه یک رشته . it's c-style string
برای اینکه یک string بگیریم باید یک آرایه پویا تعریف کنیم نه یک متغییر
دقیقا" من الان یه اریه پویا درست کردم
این ارایه ها و dynamic memory ,pointer ها خیلی نکته دارن !!درسته
مثلا" فرق کد این دو با هم چیه
char* t=new char;
با //
char*y="geek";
cin>>t //geek
و
int *pArray;
int MyArray[6];
pArray = &MyArray[0];
//با
int *pArray=new int;
و
فرق new با malloc?
Gold_cpp
شنبه 01 آبان 1389, 02:19 صبح
با سلامی مجدد به دوست خوبم geek1982
این ارایه ها و dynamic memory ,pointer ها خیلی نکته دارن !!درسته
بله درسته . و چون نکته زیاد دارن گفتم شاید این pointer ها رو خوب متوجه نشدم . برای همین از شما سوال کردم .
دوست عزیز نمی دونم چرا مقایسه دو کد رو آوردی !:متفکر:
درباره new و malloc ::
new :: برای تخصیص حافظه پویا در ++C استفاده می شود .
malloc هم همین کار رو توی C انجام میده .
توی ++C ،
delete داریم و در C ،
free
یه سوال
فکر میکنید این حرف درسته !؟
int *x = new int ;
//or
int *x;
x = new int ;
این دستورات موجب میشود تا به اندازه طول نوع int حافظه ای تخصیص یابد و آدرسش در x قرار بگیرد .
ولی دستور زیر حافظه ای به اندازه n مقدار صحیح ایجاد می کند و آدرس آنرا در x قرار میدهد . (آدرس خونه اول)
//const int n = 30;
int *x;
x = new int [n];
با این حساب تعریف یک متغییر با آرایه ای از متغیر ها متفاوت است ؟؟
r00tkit
شنبه 01 آبان 1389, 02:33 صبح
نگاه کن
int* t=new int;
t[1]=2;
std::cout<<t[1];
int* y=new int[2];
std::cout<<y[1];
در مورد new و mallocهم بگم که malloc شی گرا نیست
تصمیم گرفتم نکات جالب رو در مورد این دو زبان که note کردم تو یه تاپیک بنویسم
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.