C++에서 테이블 만들기
C++에서는 iomanip
라이브러리를 사용하여 데이터를 테이블 형식으로 표시할 수 있습니다. 또한 테이블에 데이터를 인쇄하는 데 도움이 되는 iomanip
라이브러리의 다양한 방법에 대해 알아봅니다.
이 기사에서는 C++에서 테이블 형식으로 데이터를 인쇄하는 방법에 대해 설명합니다.
C++에서 테이블을 생성하는 함수
C++에서 테이블의 데이터를 인쇄하려면 동일한 너비의 열을 인쇄하고 iomanip
라이브러리를 사용해야 합니다. 열의 값이 열의 너비보다 작은 경우 너비를 다른 열과 동일하게 만들기 위해 패딩을 추가해야 합니다.
iomanip
라이브러리는 프로그램의 출력을 조작하는 많은 방법을 제공합니다. setfill()
함수와 setw()
함수는 테이블에 데이터를 인쇄하는 데만 필요하므로 이에 대해서만 알아봅니다.
setw()
함수는 출력 필드의 너비를 설정하는 데 사용됩니다. setw()
함수의 구문은 setw(숫자)
로 작성됩니다. 여기서 숫자
는 출력 필드의 너비에 설정할 문자 수를 나타냅니다.
예제 코드:
#include <iomanip>
#include <iostream>
using namespace std;
int main() {
cout << setw(10) << "Monday" << endl;
cout << setw(10) << "Tuesday" << endl;
cout << setw(10) << "Wednesday" << endl;
return 0;
}
출력:
Monday
Tuesday
Wednesday
단어 Monday
, Tuesday
및 Wednesday
를 인쇄하는 동안 출력 값에 너비를 10
으로 지정했습니다.
월요일
의 경우 출력은 너비가 10이 되도록 4개의 공백을 추가하고 화요일
의 경우 3개의 공백을 추가하며 수요일
의 경우 하나의 공백을 추가합니다.
setfill()
함수는 채우기 문자로 사용됩니다. setfill()
함수의 구문은 setfill(char ch)
로 작성됩니다. 여기서 ch
는 공백을 채워야 하는 문자입니다.
예제 코드:
#include <iomanip>
#include <iostream>
using namespace std;
int main() {
cout << setfill('#') << setw(10) << "Monday" << endl;
cout << setfill('#') << setw(10) << "Tuesday" << endl;
cout << setfill('#') << setw(10) << "Wednesday" << endl;
return 0;
}
출력:
####Monday
###Tuesday
#Wednesday
너비를 10
으로 지정하고 Monday
, Tuesday
및 Wednesday
라는 단어를 인쇄했습니다. setfill()
함수가 없으면 출력에 공백 문자가 포함되어 이전 예제와 같이 단어의 출력 길이를 10으로 만듭니다.
그러나 문자 #을 입력 인수로 사용하여 setfill()
메서드를 사용하면 출력의 공백이 문자 #로 대체됩니다.
월요일
의 경우 너비를 10으로 만들기 위해 # 4개의 채우기 문자가 사용됩니다. 화요일
의 경우 3개의 채우기 문자가 사용되며 수요일
의 경우 1개의 채우기 문자가 사용됩니다.
채우기 문자는 기본적으로 왼쪽에 배치되지만 std::left
를 사용하여 채우기 문자를 오른쪽에 인쇄할 수도 있습니다. 채우기 문자가 출력 값의 오른쪽에 인쇄되는 다음 예제에서 이를 관찰할 수 있습니다.
예제 코드:
#include <iomanip>
#include <iostream>
using namespace std;
int main() {
cout << setfill('#') << left << setw(10) << "Monday" << endl;
cout << setfill('#') << left << setw(10) << "Tuesday" << endl;
cout << setfill('#') << left << setw(10) << "Wednesday" << endl;
return 0;
}
출력:
Monday####
Tuesday###
Wednesday#
C++에서 적절한 정렬로 테이블 만들기
적절한 정렬을 사용하여 C++에서 테이블을 만드는 예제를 살펴보겠습니다. 아래 예에서는 C++의 테이블에 Age
와 Birthday
를 인쇄했습니다.
항목의 너비를 설정하기 위해 C++에서 iomanip
라이브러리의 setw()
함수를 사용했습니다.
예제 코드:
#include <iomanip>
#include <iostream>
using namespace std;
class Birthday {
public:
string studentName;
int studentAge;
int birthDay;
string birthMonth;
string birthYear;
Birthday(string name, int age, int day, string month, string year) {
studentName = name;
studentAge = age;
birthDay = day;
birthMonth = month;
birthYear = year;
}
};
int main() {
Birthday recordArray[5] = {Birthday("Naman", 20, 13, "January", "1999"),
Birthday("Divesh", 23, 04, "May", "1996"),
Birthday("Nitish", 19, 29, "December", "2000"),
Birthday("Mandeep", 25, 19, "March", "1998"),
Birthday("Aman", 20, 29, "April", "1989")};
cout << left << setw(10) << "Name" << left << setw(5) << "Age" << left
<< setw(8) << "Day" << left << setw(10) << "Month" << left << setw(4)
<< "Year" << endl;
for (int i = 0; i <= 4; i++) {
cout << left << setw(10) << recordArray[i].studentName << left << setw(5)
<< recordArray[i].studentAge << left << setw(8)
<< recordArray[i].birthDay << left << setw(10)
<< recordArray[i].birthMonth << left << setw(4)
<< recordArray[i].birthYear << endl;
}
return 0;
}
출력:
Name Age Day Month Year
Naman 20 13 January 1999
Divesh 23 4 May 1996
Nitish 19 29 December 2000
Mandeep 25 19 March 1998
Aman 20 29 April 1989
각 열에 다른 너비를 설정했습니다. 각 열의 너비는 콘텐츠의 너비보다 큽니다.
출력 너비가 열 너비보다 작으면 콘텐츠가 오버플로됩니다. 아래 예를 고려하십시오.
예제 코드:
#include <iomanip>
#include <iostream>
using namespace std;
int main() {
cout << left << setw(1) << "January" << endl;
return 0;
}
출력:
January
너비 크기가 출력 길이보다 작은 숫자로 설정되어 있어도 출력이 테이블에 인쇄됩니다. 이 경우 출력 길이는 출력 값의 길이와 같습니다.
결론
우리는 C++에서 iomanip
라이브러리를 사용하여 테이블을 만드는 것에 대해 논의했습니다. iomanip
라이브러리의 setw()
함수와 setfill()
함수의 구문에 대해 배웠습니다.
또한 이러한 함수를 사용하여 C++에서 테이블을 만드는 방법에 대해서도 논의했습니다. 예제에서는 setw()
메서드를 사용하여 열 너비를 결정하고 setfill()
함수를 사용하여 다른 문자로 테이블을 포맷했습니다.
Aditya Raj is a highly skilled technical professional with a background in IT and business, holding an Integrated B.Tech (IT) and MBA (IT) from the Indian Institute of Information Technology Allahabad. With a solid foundation in data analytics, programming languages (C, Java, Python), and software environments, Aditya has excelled in various roles. He has significant experience as a Technical Content Writer for Python on multiple platforms and has interned in data analytics at Apollo Clinics. His projects demonstrate a keen interest in cutting-edge technology and problem-solving, showcasing his proficiency in areas like data mining and software development. Aditya's achievements include securing a top position in a project demonstration competition and gaining certifications in Python, SQL, and digital marketing fundamentals.
GitHub