پاک کردن و تغییر نام فایل در c++ - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

پاک کردن و تغییر نام فایل در c++

+1 امتیاز

یک تابع نوشتم برای ویرایش یک فایل بنام note.txt و ذخیره ی اطلاعات جدید در فایلی به نام note2.txt که در نهایت باید فایل اول پاک بشه و فایل دوم اسمش بشه فایل اول ولی این 2 خط کد که با *** مشخص کردم اجرا نمیشه sad

void deletenote ( int d ,int m ,int y )
{
	fstream note("E:\\note.txt") ;
	long long d2 = d , m2 = m , y2 = y ;
	string temp = to_string ( d2 ) + "/" + to_string ( m2 ) + "/" + to_string ( y2 ) ;
	
	ofstream note2( "E:\\note2.txt" ) ;
	string temp2 ;

	while ( note >> temp2 )
	{
		if ( temp2 == temp )
		{
			getline( note , temp2 ) ;
		}
		else if ( temp2 != temp )
		{
			note2 << temp2 ;
			getline( note , temp2 ) ;
			note2 << "\t"<< temp2 << "\n" ;
		}
	}
	remove("note.txt");//*****************************
	rename("note2.txt","note.txt");//*****************
}

 

سوال شده آذر 21, 1392  بوسیله ی Elyas74 (امتیاز 1,144)   6 14 27
دوباره تگ گذاری شد بهمن 22, 1392 بوسیله ی BlueBlade
stdio.h رو include کردی ؟
اره اون رو هم گذاشتم
شما temp رو مقدار دهی نکرده استفاده کردید در ضمن عملگر << همون getline هستش شما هر 2 رو استفاده کردید
temp رو توی خط 5 مقدار دهی کردم و در کل در با خط به خط اجرا کردن که پیش میرم همه چیز درسته بجز همون 2 خط که این 2 تابع مقدار -1 برمیگردونن که طبیعتا در این حالت کارشون رو درست انجام ندادن ولی نمیدونم چرا
اینجا temp یک رشته است که شناسه ی اون چیزی که توی فایل دنبالش میگردم رو نگه میداره و درست پیداش میکنه و طبق کد هم اون خط از فایل توی فایل جدید کپی نمیشه ،

ولی توی قسمت حذفِ فایل اصلی و تغییر نام فایل کمکی به اصلی  مشکل هست.

1 پاسخ

+1 امتیاز
 
بهترین پاسخ

باید یک همچین جیزی بشه کدتون


void deletenote ( int d ,int m ,int y )
{
    fstream note("E:\\note.txt",ios::in) ;
    long long d2 = d , m2 = m , y2 = y ;
    string temp = to_string ( d2 ) + "/" + to_string ( m2 ) + "/" + to_string ( y2 ) ;
     
    stringstream note2;
    string temp2 ;
 
    while ( note >> temp2 )
    {
        if ( temp2 != temp )
            note2 << temp2 << endl;
    }
	note.close();
	fstream file2("E:\\note.txt",ios::out) ;
	file2 << note2.rdbuf();
	file2.close();
	
}

 

پاسخ داده شده آذر 22, 1392 بوسیله ی مصطفی ساتکی (امتیاز 21,998)   24 34 75
انتخاب شد آذر 22, 1392 بوسیله ی Elyas74
...