저는 현재 C ++를 배우고 있습니다. 파일의 데이터를 아래 표로 읽어야합니다. 데이터를 읽을 수는 있지만 테이블에서는 다음과 같이 표시되지 않습니다.
StdID A1 A2 A3
030302 9 5 6
오히려
030302
9
5
6
기타
어떻게 이것을 테이블에 올바르게 포맷합니까? 나는 setw를 시도했지만 문제가 해결되지 않았습니다.
#include <iostream>
#include <iomanip>
#include <fstream>
using namespace std;
int main()
{
int StdID=0, A1=0, A2=0, A3=0;
ifstream fin;
fin.open("data.txt");
if(!fin)
cout << "The file does not exist.";
else{
cout << "Std-ID A1 A2 A3 Min Max Avg\n";
cout << " ---------------------------------------------------\n";
while (!fin.eof())
{
fin >> StdID >> A1 >> A2 >> A3;
cout << setw(10) << StdID << endl;
cout << setw(10) << A1 << endl;
cout << setw(10) << A2 << endl;
cout << setw(10) << A3 << endl;
}
}
return 0;
}
변수를 표시 할 때마다 새 행도 표시됩니다 (각을 사용하여 << endl;
).
이것은 작동합니다.
while (!fin.eof())
{
fin >> StdID >> A1 >> A2 >> A3;
cout << setw(10) << StdID << setw(10) << A1 << setw(10) << A2 << setw(10) << A3 << endl;
// You may also break it down like this:
//cout << setw(10) << StdID;
//cout << setw(10) << A1;
//cout << setw(10) << A2;
//cout << setw(10) << A3 << endl; // one endl on each iteration
}
조언 : 왜 iostream :: eof 내부 루프 조건이 잘못된 것으로 간주되는지 배워야 할 수도 있습니다 . 대신이 조건을 사용하는 것이 좋습니다.
while (fin >> StdID >> A1 >> A2 >> A3)
편집하다:
Tab 키를 \t
여전히 문자열과 유사한 방식으로 작동합니다 :
cout << "Std-ID\t\t\tA1\t\t\tA2\t\t\tA3\t\t\tMin\t\t\tMax\t\t\tAvg\n";
또한 if (fin.is_open())
파일이 성공적으로 열렸는지 확인 하는 데 더 유용 합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다