Pari_Programmer
دوشنبه 03 خرداد 1389, 19:19 عصر
با سلام.
من ميخوام يه برنامه بنويسم كه تعدادي كلمه رو از توي يه فايل بخونه و اون رو به ليست اضافه كنه. اون قسمتي از برنامه كه مربوط به خوندن فايل و اضافه كردن به ليسته رو اينجوري نوشتم:
typedef struct List
{
wstring Token;
List *next;
};
void LoadFile()
{
ifstream InputFile( "InTest.txt" );
ofstream OutputFile( "OutTest.txt" );
if(!InputFile || !OutputFile)
{
cout<<"Error."<<endl;
exit(0);
}
wstring InSent=L"";
List *root = (List *)malloc(sizeof(List));
root=NULL;
while(!InputFile.eof())
{
InputFile>>InSent;
List *Temp;
Temp= (List*)malloc(sizeof(List));
Temp->Token=InSent;
Temp->next=root;
root = Temp;
}
در ظاهر همه چيز بايد درست كار كنه. اما وقتي برنامه رو اجرا ميكنم، به اين خط كه ميرسه:
Temp->Token=InSent;
اين خطا رو صادر ميكنه:
Unhandled exception at 0x1026edac (msvcr90d.dll) in UTF8Manipulator.exe: 0xC0000005: Access violation writing location 0xcdcdcdcd.
كسي ميدونه اشكال كار كجاست و چيكارش بايد كرد؟
با string هم امتحان كردم ديدم همين مشكل رو داره. با wchar_t* و char* هم اوضاع همينه.:ناراحت:
ولي وقتي با int كار ميكنم جواب ميده. هرچي هست اشكال توي كار با رشته هاست. اما چرا و چه جوري ميشه درستش كرد؟
راستي اين رو هم بگم كه براي مقدار دهي به Temp->Tokenاز راههاي مختلفي استفاده كردم مثل استفاده از assign و انتساب معمولي. ولي همه به همون پيغام خطا ختم ميشد.
من ميخوام يه برنامه بنويسم كه تعدادي كلمه رو از توي يه فايل بخونه و اون رو به ليست اضافه كنه. اون قسمتي از برنامه كه مربوط به خوندن فايل و اضافه كردن به ليسته رو اينجوري نوشتم:
typedef struct List
{
wstring Token;
List *next;
};
void LoadFile()
{
ifstream InputFile( "InTest.txt" );
ofstream OutputFile( "OutTest.txt" );
if(!InputFile || !OutputFile)
{
cout<<"Error."<<endl;
exit(0);
}
wstring InSent=L"";
List *root = (List *)malloc(sizeof(List));
root=NULL;
while(!InputFile.eof())
{
InputFile>>InSent;
List *Temp;
Temp= (List*)malloc(sizeof(List));
Temp->Token=InSent;
Temp->next=root;
root = Temp;
}
در ظاهر همه چيز بايد درست كار كنه. اما وقتي برنامه رو اجرا ميكنم، به اين خط كه ميرسه:
Temp->Token=InSent;
اين خطا رو صادر ميكنه:
Unhandled exception at 0x1026edac (msvcr90d.dll) in UTF8Manipulator.exe: 0xC0000005: Access violation writing location 0xcdcdcdcd.
كسي ميدونه اشكال كار كجاست و چيكارش بايد كرد؟
با string هم امتحان كردم ديدم همين مشكل رو داره. با wchar_t* و char* هم اوضاع همينه.:ناراحت:
ولي وقتي با int كار ميكنم جواب ميده. هرچي هست اشكال توي كار با رشته هاست. اما چرا و چه جوري ميشه درستش كرد؟
راستي اين رو هم بگم كه براي مقدار دهي به Temp->Tokenاز راههاي مختلفي استفاده كردم مثل استفاده از assign و انتساب معمولي. ولي همه به همون پيغام خطا ختم ميشد.