printf("%-8s - %s\n", c->name ? c->name : "", c->help);
답변
난 당신이 찾고있는 무슨 생각이
cout << left << setw(8) << (c->name ? c->name : "") << " - " << c->help << endl;
left
및 setw(8)
조종 함께 printf
에 지정자를 서식 %-8s
과 같은 효과가있다. 그러나 setw
을 사용하기 때문에이 작업을 수행하려면 #include <iomanip>
이 필요합니다.
편집 : Matthieu M.이 말한 것처럼 cout
을 영구히 변경하여 모든 패딩 작업이 왼쪽 정렬되도록합니다. 이것이 보이는 것만 큼 나쁘지는 않습니다. setw
을 명시 적으로 사용하여 일부 패딩을 설정할 때만 적용됩니다. 이 문제를 처리하는 방법에 대한 몇 가지 옵션이 있습니다. 먼저, setw
을 사용하기 전에 항상 텍스트를 왼쪽 또는 오른쪽으로 맞추는 데 left
또는 right
매니퓰레이터를 사용하는 방식을 강요 할 수 있습니다. 또는, cout
에 플래그의 현재 상태를 캡처하는 flags
및 setf
기능을 사용할 수 있습니다 :
ios_base::fmtflags currFlags = cout.flags();
cout << left << setw(8) << (c->name ? c->name : "") << " - " << c->help << endl;
cout.setf(currFlags, ios_base::adjustfield);
이 세 가지 단계로 작동합니다. 첫 번째 줄은 현재 패딩 된 출력을 정렬하는 방법을 포함하여 cout
에서 현재 서식 지정 플래그를 읽습니다. 두 번째 줄은 실제로 값을 출력합니다. 마지막으로, 마지막 행은 내부 정렬을 위해 cout
의 출력 플래그를 이전 값으로 재설정합니다.
개인적으로 나는 첫 번째 옵션이 더 매력적이라고 생각하지만 기술적으로 더 정확하기 때문에 두 번째 옵션이 존재한다는 것을 알면 분명 좋습니다.
추악함! 내 눈! 그들이 탔다! +1 – Marlon
@ Marlon- 나는 화상을 입지 않는 서식을 가진 단일 좋은 I/O 라이브러리를 찾지 못했습니다. 개인적으로이 버전은'printf '보다 더 좋아합니다. 왜냐하면 훨씬 더 장황한 내용 일지라도 조금 더 명확하기 때문입니다. 또한, 나는 한 번 쉼표/왼쪽 맞춤 괄호 키를 깨뜨 렸고, 그래서 가장 긴 시간 동안 나는 이것과 같은 것을 타이핑해야한다는 것을 두려워했습니다. :-) – templatetypedef
@ Marlon 몇 줄 바꿈으로 고통을 덜어 줄 수 있습니다. Aspirin ++를 복용하는 것도 좋습니다. –
당신이 가지고있는 경우에 부스트 라이브러리 :
진심std::cout << boost::format("%-8s - %s\n") % (c->name ? c->name : "") % c->help;
+1 형식의 경우 분명히 원본에 가까워 훨씬 쉬울 것입니다. –
- 1. 파이썬을 사용하여 U + 0043을 C로 변환하려면 어떻게해야합니까?
- 2. 이 표현식을 LINQ로 변환하려면 어떻게해야합니까?
- 3. 이 XML을 KML로 변환하려면 어떻게해야합니까?
- 4. Perl을 사용하여 연결 데이터 행을 구성표 블록으로 변환하려면 어떻게해야합니까?
- 5. 이 자바 스크립트 함수를 PHP로 변환하려면 어떻게해야합니까?
- 6. 오류 사용하여 표준 : : cout을
- 7. 이 문자열을 다시 배열로 변환하려면 어떻게해야합니까?
- 8. 이 문자열을 JSON 객체로 변환하려면 어떻게해야합니까?
- 9. 이 테이블 기반 레이아웃을 CSS로 변환하려면 어떻게해야합니까?
- 10. 이 HTML 텍스트를 SQLite 데이터베이스로 변환하려면 어떻게해야합니까?
- 11. 이 조인을 LINQ 구문으로 변환하려면 어떻게해야합니까?
- 12. asp.net을 사용하여 .docx를 html로 변환하려면 어떻게해야합니까?
- 13. DateTime 개체를 C#을 사용하여 날짜 만있는 문자열로 변환하려면 어떻게해야합니까?
- 14. 어떻게 cout을 사용하여 \ 기호를 출력합니까?
- 15. C#에서 XLS 문서를 XML로 변환하려면 어떻게해야합니까?
- 16. 개체 형식을 짧은 형식으로 변환하려면 어떻게해야합니까? (C#)
- 17. Objective-C - 바이트 배열을 NSString으로 변환하려면 어떻게해야합니까?
- 18. 이 헤더를 C로 작성해야합니까?
- 19. XSLT를 사용하여 XML을 잘못된 XML로 변환하려면 어떻게해야합니까?
- 20. 이 Python 구두점 제거 기능을 JavaScript로 변환하려면 어떻게해야합니까?
- 21. NSDecimalNumber를 NSInteger로 변환하려면 어떻게해야합니까?
- 22. 이 PHP 코드를 C로 이식 #
- 23. double을 C++에서 문자열로 변환하려면 어떻게해야합니까?
- 24. DataTable을 C#의 XML 파일로 변환하려면 어떻게해야합니까?
- 25. C++ 문자열을 .NET String ^으로 변환하려면 어떻게해야합니까?
- 26. C#에서 데이터베이스 개체를 int로 변환하려면 어떻게해야합니까?
- 27. 유니 코드 경로를 C 문자열로 변환하려면 어떻게해야합니까?
- 28. C++ 네임 스페이스를 사용하도록 프로그램을 변환하려면 어떻게해야합니까?
- 29. IntPtr을 스트림으로 변환하려면 어떻게해야합니까?
- 30. .NET에서 문자열을 datetime으로 변환하려면 어떻게해야합니까?
, 왜 귀찮게? – JeremyP