C++

c++ 파일 입출력 / 파일 생성한 후 그 뒤에 이어쓰기

devJua 2023. 6. 2. 23:27

c++ 관련 개발을 하던 도중, 파일을 생성한 후 특정 값을 이어 써주고 싶었다.

상황은 while문이 3번 돌 때 마다 while문을 돌면서 생기는 값들을 찍어주는 느낌?과 가까웠다.

 

우선 내가 구현한 방법은

 

cout << date << "일차에서 넘어갑니다." << date + 1 << "일차로 넘어갑니다." << endl;

//만약 1일차일 경우 txt파일을 생성
if (date == 1) {
	ofstream fout("test.txt");


	fout << date << "일차 매출액입니다." << endl;
	fout << "[음료수]  : ";
	fout << date_sell["음료수"] << "원 매출이 났습니다." << endl; //2000원으로 표기
	fout << "[라면]    : ";
	fout << date_sell["라면"] << "원 매출이 났습니다." << endl;
	fout << "[삼각김밥]: ";
	fout << date_sell["삼각김밥"] << "원 매출이 났습니다." << endl;
	fout << "[과자]    : ";
	fout << date_sell["과자"] << "원 매출이 났습니다." << endl;
	fout << "[빵]      : ";
	fout << date_sell["빵"] << "원 매출이 났습니다." << endl;

	//일차별 재고 입고 사항 알려주기
	fout << "\n" << date << "일차 재고 입고 사항입니다." << endl;
	fout << "음료수   : " << beverage_stuck << endl;
	fout << "라면     : " << ramen_stuck << endl;
	fout << "삼각김밥 : " << gimbap_stuck << endl;
	fout << "과자     : " << chip_stuck << endl;
	fout << "빵       : " << bread_stuck << endl;

	//파일닫기
	fout.close();

	cout << "파일 저장 완료" << endl;
}


else {
	
	//2일차부터는 else문으로 들어오기
	ofstream file;
	bool is_open(); // 파일 열렸는지 검사

	//1일차에서 생성한 txt파일에 이어쓰기 out과 app 사용
	file.open("test.txt", ios::out | ios::app);
	file << "---------------------------------------" << endl;

	file << date << "일차 매출액입니다." << endl;
	file << "[음료수]  : ";
	file << date_sell["음료수"] << "원 매출이 났습니다." << endl; //2000원으로 됨
	file << "[라면]    : ";
	file << date_sell["라면"] << "원 매출이 났습니다." << endl;
	file << "[삼각김밥]: ";
	file << date_sell["삼각김밥"] << "원 매출이 났습니다." << endl;
	file << "[과자]    : ";
	file << date_sell["과자"] << "원 매출이 났습니다." << endl;
	file << "[빵]      : ";
	file << date_sell["빵"] << "원 매출이 났습니다." << endl;

	file << "\n" << date << "일차 재고 사항입니다." << endl;
	file << "음료수   : " << beverage_stuck << endl;
	file << "라면     : " << ramen_stuck << endl;
	file << "삼각김밥 : " << gimbap_stuck << endl;
	file << "과자     : " << chip_stuck << endl;
	file << "빵       : " << bread_stuck << endl;

	file << "---------------------------------------" << endl;

	file.close();

	cout << "파일 저장 완료" << endl;


}

이렇게 우선 파일 객체를 선언해서 만들어주고,

그 뒤에 파일을 열어주고 out과 app을 사용하여 이어써줬다.

 

참고로 경로 설정 안 해주면 

C:\Users\username\source\repos\consol\consol

이러한 경로에 저장되어있는 것을 확인할 수 있었다.