PDA

View Full Version : خطاي Lvalue required



اوبالیت به بو
چهارشنبه 21 مرداد 1388, 20:30 عصر
سلام
علت خطاي Lvalue required در كد زير چيه؟


struct MyStruct{
char FName[30],LName[30];
}Person;
Person sArray[10];
void main()
{
char FirstName[30],LastName[30];
cout << "Enter First and Last Name:" << "\t";
cin >> FirstName >> LastName;
sArray[0].FName=FirstName;
sArray[0].LName=LastName;
}

و اين خطا چيه؟

cups_of_java
چهارشنبه 21 مرداد 1388, 21:39 عصر
Fname , Lname دو تاشون آرایه هستند.
آرایه ها رو نمی تونید مساوی هم قرار بدید! برای اینکه یک ارایه رو در یه آرایه دیگه کپی کنید باید اعضاشون رو تک تک در هم کپی کنید. خلاصه اینکه اپراتور مساوی (انتساب) برای آرایه ها کار نمی کنه.

pswin.pooya
چهارشنبه 21 مرداد 1388, 21:42 عصر
خب مشکل از کپی کردن آرایه هستش. اگر برنامه رو به صورت زیر اصلاح کنی مشکل حل میشه:


#include <iostream>
#include <string>

using namespace std;
struct person
{
std::string Fname;
std::string Lname;
};

person sArray[10] ;

void main()
{
string fname,lname;
cin >> fname;
cin >> lname;
sArray[0].Fname = fname;
....
}

و یا میتونی برای کپی رشته از دستور strcpy استفاده کنی.

اوبالیت به بو
چهارشنبه 21 مرداد 1388, 21:47 عصر
و یا میتونی برای کپی رشته از دستور strcpy استفاده کنی.
include اين دستور چي هست؟ يادمه حرف c زياد داشت.

pswin.pooya
چهارشنبه 21 مرداد 1388, 22:03 عصر
include اين دستور چي هست؟ يادمه حرف c زياد داشت.

همون:

#include<string>
نحوه استفاده:


strcpy ( رشته مبدا،رشته مقصد);معادل یونی کدش هم wcscpy هستش.

اوبالیت به بو
چهارشنبه 21 مرداد 1388, 22:13 عصر
كامپايلر من <string> رو نمي تونه import كنه. مثل اينكه نمي شناسه. چي كار كنم؟

pswin.pooya
چهارشنبه 21 مرداد 1388, 22:34 عصر
از چه کامپایلری استفاده میکنی؟!

شاید باید بنویسی string.h به هر حال هر دوی این دو تابع داخل این هدر قرار دارند. توی زبان C فایل هدر string.h بودش که داخل CPP شدش string خالی

tdkhakpur
پنج شنبه 22 مرداد 1388, 01:10 صبح
سلام
خودت را اذیت نکن این سورسشه بزار دکان میکروسافت تخته بشه(شوخی)


void strcpy(char *trgt, char *src)
{
int srclen, trgtlen;
srclen = strlen(src);
trgtlen = strlen(trgt);
for( int i=0; i<srclen && i<trgtlen; i++ )
trgt[i] = src[i];
}

اوبالیت به بو
پنج شنبه 22 مرداد 1388, 12:51 عصر
از يه روش خشونت بار استفاده كردم:


struct MyStruct{
char FName[30],LName[30];
}Person;
Person p[10];
void main()
{
char FirstName[30],LastName[30];
cout << "Enter First and Last Name:" << "\t";
cin.get(FirstName,30);
cin.get[LastName,30);
for (int i = 0 ; i < 30 ; i++)
{
p[0].FName[i]=FirstName[i];
p[0].LName[i]=LastName[i];
}
}