Input/output (C++)
ಸಿ + + ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯಲ್ಲಿ, ಇನ್ಪುಟ್/ಔಟ್ಪುಟ್ ಲೈಬ್ರರಿಯು ಸ್ಟ್ರೀಮ್-ಆಧಾರಿತ ಇನ್ಪುಟ್/ಔಟ್ಪುಟ್ ಸಾಮರ್ಥ್ಯಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವ ಸಿ + + ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಲೈಬ್ರರಿಯಲ್ಲಿ ವರ್ಗ ಟೆಂಪ್ಲೆಟ್ಗಳು ಮತ್ತು ಪೋಷಕ ಕಾರ್ಯಗಳ ಕುಟುಂಬವನ್ನು ಸೂಚಿಸುತ್ತದೆ. ಇದು ಸಿ ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಲೈಬ್ರರಿಯಿಂದ ಸಿ ಯ ಎಫ್. ಐ. ಎಲ್ ಆಧಾರಿತ ಸ್ಟ್ರೀಮ್ಗಳಿಗೆ ವಸ್ತು-ಆಧಾರಿತ ಪರ್ಯಾಯವಾಗಿದೆ. ಸಿ + + ನ ಸೃಷ್ಟಿಕರ್ತನಾದ ಜಾರ್ನೆ ಸ್ಟ್ರೌಸ್ಟ್ರಪ್, 1984ರಲ್ಲಿ ಐ/ಒ ಲೈಬ್ರರಿಯ ಸ್ಟ್ರೀಮ್ನ ಮೊದಲ ಆವೃತ್ತಿಯನ್ನು ಸಿ 'ಯ ಐ/ಒ ಲೈಬ್ರರಿಗೆ ಟೈಪ್-ಸುರಕ್ಷಿತ ಮತ್ತು ವಿಸ್ತರಿಸಬಹುದಾದ ಪರ್ಯಾಯವಾಗಿ ಬರೆದರು. ಈ ಆರಂಭಿಕ ಆವೃತ್ತಿಯಿಂದ ಗ್ರಂಥಾಲಯವು ಹಲವಾರು ಸುಧಾರಣೆಗಳಿಗೆ ಒಳಗಾಗಿದೆ, ಇದರಲ್ಲಿ ಫಾರ್ಮ್ಯಾಟಿಂಗ್ ಅನ್ನು ನಿಯಂತ್ರಿಸಲು ಮ್ಯಾನಿಪುಲೇಟರ್ಗಳ ಪರಿಚಯ, ಮತ್ತು ಚಾರ್ ಅನ್ನು ಹೊರತುಪಡಿಸಿ ಇತರ ಅಕ್ಷರ ಪ್ರಕಾರಗಳೊಂದಿಗೆ ಅದರ ಬಳಕೆಯನ್ನು ಅನುಮತಿಸಲು ಟೆಂಪ್ಲೇಟೈಸೇಶನ್ ಸೇರಿವೆ. 1998 ರಲ್ಲಿ ಪ್ರಮಾಣೀಕರಣವು ಗ್ರಂಥಾಲಯವನ್ನು ಎಸ್ಟಿಡಿ ನೇಮ್ಸ್ಪೇಸ್ಗೆ ಸ್ಥಳಾಂತರಿಸಿತು, ಮತ್ತು ಮುಖ್ಯ ಹೆಡರ್ ಅನ್ನು <iostream.h ನಿಂದ <ಐಯೋಸ್ಟ್ರೀಮ್> ಗೆ ಬದಲಾಯಿಸಲಾಯಿತು. ಈ ಪ್ರಮಾಣೀಕೃತ ಆವೃತ್ತಿಯು ಲೇಖನದ ಉಳಿದ ಭಾಗದಲ್ಲಿದೆ. ಅವಲೋಕನ ಗ್ರಂಥಾಲಯದಲ್ಲಿನ ಹೆಚ್ಚಿನ ತರಗತಿಗಳು ವಾಸ್ತವವಾಗಿ ಬಹಳ ಸಾಮಾನ್ಯೀಕೃತ ವರ್ಗ ಟೆಂಪ್ಲೆಟ್ಗಳಾಗಿವೆ. ಪ್ರತಿಯೊಂದು ಟೆಂಪ್ಲೇಟ್ ವಿವಿಧ ಅಕ್ಷರ ಪ್ರಕಾರಗಳಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ, ಮತ್ತು ಎರಡು ಅಕ್ಷರಗಳನ್ನು ಸಮಾನತೆಗಾಗಿ ಹೇಗೆ ಹೋಲಿಸಲಾಗುತ್ತದೆ ಎಂಬಂತಹ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ಸಹ ಕಸ್ಟಮೈಸ್ ಮಾಡಬಹುದು. ಆದಾಗ್ಯೂ, ಬಹುಪಾಲು ಕೋಡ್ಗಳು ಕೇವಲ ಒಂದು ಅಥವಾ ಎರಡು ಅಕ್ಷರ ಪ್ರಕಾರಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಇನ್ಪುಟ್ ಮತ್ತು ಔಟ್ಪುಟ್ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ಮಾಡಬೇಕಾಗುತ್ತದೆ, ಹೀಗಾಗಿ ಹೆಚ್ಚಿನ ಸಮಯದ ಕಾರ್ಯವನ್ನು ಹಲವಾರು ಟೈಪೆಡೆಫ್ಗಳ ಮೂಲಕ ಪ್ರವೇಶಿಸಲಾಗುತ್ತದೆ, ಇದು ಸಾಮಾನ್ಯವಾಗಿ ಬಳಸುವ ಟೆಂಪ್ಲೇಟ್ ಮತ್ತು ಅಕ್ಷರ ಪ್ರಕಾರದ ಸಂಯೋಜನೆಗಳಿಗೆ ಹೆಸರುಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಬೇಸಿಕ್ _ ಎಫ್ಸ್ಟ್ರೀಮ್ <ಚಾರ್ಟ್, ಟ್ರೇಟ್ಸ್> ಎಂಬುದು ಫೈಲ್ ಸ್ಟ್ರೀಮ್ಗಳಲ್ಲಿ ಇನ್ಪುಟ್/ಔಟ್ಪುಟ್ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವ ಸಾಮಾನ್ಯ ವರ್ಗದ ಟೆಂಪ್ಲೇಟ್ ಅನ್ನು ಸೂಚಿಸುತ್ತದೆ. ಇದನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ಎಫ್ಸ್ಟ್ರೀಮ್ ಆಗಿ ಬಳಸಲಾಗುತ್ತದೆ, ಇದು ಬೇಸಿಕ್ _ ಎಫ್ಸ್ಟ್ರೀಮ್ <ಚಾರ್, ಚಾರ್ _ ಟ್ರೇಟ್ಸ್ <ಚಾರ್>, ಅಥವಾ, ಬೇರೆ ರೀತಿಯಲ್ಲಿ ಹೇಳುವುದಾದರೆ, ಡೀಫಾಲ್ಟ್ ಅಕ್ಷರ ಕಾರ್ಯಾಚರಣೆಯ ಗುಂಪಿನೊಂದಿಗೆ ಟೈಪ್ ಚಾರ್ನ ಅಕ್ಷರಗಳ ಮೇಲೆ ಕಾರ್ಯನಿರ್ವಹಿಸುವ ಬೇಸಿಕ್ _ ಎಫ್ಸ್ಟ್ರೀಮ್. ಗ್ರಂಥಾಲಯದಲ್ಲಿನ ತರಗತಿಗಳನ್ನು ಸ್ಥೂಲವಾಗಿ ಎರಡು ವರ್ಗಗಳಾಗಿ ವಿಂಗಡಿಸಬಹುದುಃ ಅಮೂರ್ತತೆ ಮತ್ತು ಅನುಷ್ಠಾನಗಳು. ಅಮೂರ್ತತೆಗಳ ವರ್ಗಕ್ಕೆ ಸೇರುವ ವರ್ಗಗಳು, ಯಾವುದೇ ರೀತಿಯ ಸ್ಟ್ರೀಮ್ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು ಸಾಕಾಗುವ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ಒದಗಿಸುತ್ತವೆ. ಅಂತಹ ವರ್ಗಗಳನ್ನು ಬಳಸುವ ಕೋಡ್ ಡೇಟಾವನ್ನು ಓದುವ ಅಥವಾ ಬರೆಯುವ ನಿಖರವಾದ ಸ್ಥಳವನ್ನು ಅವಲಂಬಿಸುವುದಿಲ್ಲ. ಉದಾಹರಣೆಗೆ, ಅಂತಹ ಕೋಡ್ ಮರುಸಂಯೋಜನೆಯಿಲ್ಲದೆ ಫೈಲ್, ಮೆಮೊರಿ ಬಫರ್ ಅಥವಾ ವೆಬ್ ಸಾಕೆಟ್ಗೆ ಡೇಟಾವನ್ನು ಬರೆಯಬಹುದು. ಅನುಷ್ಠಾನ ವರ್ಗಗಳು ಅಮೂರ್ತ ವರ್ಗಗಳನ್ನು ಆನುವಂಶಿಕವಾಗಿ ಪಡೆಯುತ್ತವೆ ಮತ್ತು ಕಾಂಕ್ರೀಟ್ ರೀತಿಯ ದತ್ತಾಂಶ ಮೂಲ ಅಥವಾ ಸಿಂಕ್ಗೆ ಅನುಷ್ಠಾನವನ್ನು ಒದಗಿಸುತ್ತವೆ. ಗ್ರಂಥಾಲಯವು ಕಡತ-ಆಧಾರಿತ ಸ್ಟ್ರೀಮ್ಗಳು ಮತ್ತು ಮೆಮೊರಿ ಬಫರ್-ಆಧಾರಿತ ಸ್ಟ್ರೀಮ್ಗಳಿಗೆ ಮಾತ್ರ ಅನುಷ್ಠಾನಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ. ಗ್ರಂಥಾಲಯದಲ್ಲಿನ ತರಗತಿಗಳನ್ನು ಅದು ಕೆಳಮಟ್ಟದ ಅಥವಾ ಉನ್ನತ ಮಟ್ಟದ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆಯೇ ಎಂಬುದರ ಆಧಾರದ ಮೇಲೆ ಎರಡು ಗುಂಪುಗಳಾಗಿ ವಿಂಗಡಿಸಬಹುದು. ಕೆಳಮಟ್ಟದ ವಿಷಯಗಳೊಂದಿಗೆ ವ್ಯವಹರಿಸುವ ವರ್ಗಗಳನ್ನು ಸ್ಟ್ರೀಮ್ ಬಫರ್ಗಳು ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ. ಅವು ಯಾವುದೇ ಫಾರ್ಮ್ಯಾಟಿಂಗ್ ಕಾರ್ಯವನ್ನು ಒದಗಿಸದೆ ಅಕ್ಷರಗಳ ಮೇಲೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ. ಈ ವರ್ಗಗಳನ್ನು ನೇರವಾಗಿ ಬಳಸುವುದು ಬಹಳ ಅಪರೂಪ. ಉನ್ನತ ಮಟ್ಟದ ವರ್ಗಗಳನ್ನು ಸ್ಟ್ರೀಮ್ಗಳು ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ ಮತ್ತು ಅವು ವಿವಿಧ ಫಾರ್ಮ್ಯಾಟಿಂಗ್ ಸಾಮರ್ಥ್ಯಗಳನ್ನು ಒದಗಿಸುತ್ತವೆ. ಅವುಗಳನ್ನು ಸ್ಟ್ರೀಮ್ ಬಫರ್ಗಳ ಮೇಲೆ ನಿರ್ಮಿಸಲಾಗಿದೆ. ಈ ಕೆಳಗಿನ ಕೋಷ್ಟಕವು ಇನ್ಪುಟ್-ಔಟ್ಪುಟ್ ಲೈಬ್ರರಿಯಿಂದ ಒದಗಿಸಲಾದ ಎಲ್ಲಾ ವರ್ಗಗಳನ್ನು ಪಟ್ಟಿ ಮಾಡುತ್ತದೆ ಮತ್ತು ವರ್ಗೀಕರಿಸುತ್ತದೆ. ಹೆಡರ್ ಕಡತಗಳು ಇನ್ಪುಟ್/ಔಟ್ಪುಟ್ ಲೈಬ್ರರಿಯ ವರ್ಗಗಳು ಹಲವಾರು ಹೆಡರ್ಗಳಲ್ಲಿ ಇರುತ್ತವೆ. <ios> ವಿನ್ಯಾಸ ಮಾಹಿತಿ ಮತ್ತು ಸಂಬಂಧಿತ ಸ್ಟ್ರೀಮ್-ಬಫರ್ ಅನ್ನು ನಿರ್ವಹಿಸುವ ios _ ಬೇಸ್ ಮತ್ತು ಬೇಸಿಕ್ _ ios ವರ್ಗಗಳ ವ್ಯಾಖ್ಯಾನಗಳನ್ನು ಒಳಗೊಂಡಿದೆ. <ISTREM> ಮೂಲಭೂತ _ ISTREM ವರ್ಗದ ಟೆಂಪ್ಲೇಟ್ನ ವ್ಯಾಖ್ಯಾನವನ್ನು ಹೊಂದಿದೆ, ಇದು ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡಲಾದ ಇನ್ಪುಟ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ. <ಓಸ್ಟ್ರೀಮ್> ಮೂಲಭೂತ _ ಓಸ್ಟ್ರೀಮ್ ವರ್ಗ ಟೆಂಪ್ಲೇಟ್ನ ವ್ಯಾಖ್ಯಾನವನ್ನು ಹೊಂದಿದೆ, ಇದು ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡಲಾದ ಔಟ್ಪುಟ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ. <ಐಯೋಸ್ಟ್ರೀಮ್> ಮೂಲಭೂತ _ ಐಯೋಸ್ಟ್ರೀಮ್ ವರ್ಗದ ಟೆಂಪ್ಲೇಟ್ನ ವ್ಯಾಖ್ಯಾನವನ್ನು ಹೊಂದಿದೆ, ಇದು ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡಲಾದ ಇನ್ಪುಟ್ ಮತ್ತು ಔಟ್ಪುಟ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ ಮತ್ತು <ಐಒಎಸ್>, <ಐಸ್ಟ್ರೀಮ್> ಮತ್ತು <ಓಸ್ಟ್ರೀಮ್> ಅನ್ನು ಒಳಗೊಂಡಿದೆ. ಫೈಲ್ ಸ್ಟ್ರೀಮ್ಗಳಲ್ಲಿ ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡಲಾದ ಇನ್ಪುಟ್, ಔಟ್ಪುಟ್ ಮತ್ತು ಇನ್ಪುಟ್/ಔಟ್ಪುಟ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವ ಬೇಸಿಕ್ _ ಐಎಫ್ಸ್ಟ್ರೀಮ್, ಬೇಸಿಕ್ _ ಆಫ್ಸ್ಟ್ರೀಮ್ ಮತ್ತು ಬೇಸಿಕ್ _ ಎಫ್ಸ್ಟ್ರೀಮ್ ಕ್ಲಾಸ್ ಟೆಂಪ್ಲೆಟ್ಗಳ ವ್ಯಾಖ್ಯಾನಗಳನ್ನು <ಎಫ್ಸ್ಟ್ರೀಮ್> ಒಳಗೊಂಡಿದೆ. ಸ್ಟ್ರಿಂಗ್-ಆಧಾರಿತ ಸ್ಟ್ರೀಮ್ಗಳಲ್ಲಿ ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡಲಾದ ಇನ್ಪುಟ್, ಔಟ್ಪುಟ್ ಮತ್ತು ಇನ್ಪುಟ್/ಔಟ್ಪುಟ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವ ಬೇಸಿಕ್ _ ಇಸ್ಟ್ರಿಂಗ್ಸ್ಟ್ರೀಮ್, ಬೇಸಿಕ್ _ ಆಸ್ಟ್ರಿಂಗ್ಸ್ಟ್ರೀಮ್ ಮತ್ತು ಬೇಸಿಕ್ _ ಸ್ಟ್ರಿಂಗ್ಸ್ಟ್ರೀಮ್ ಕ್ಲಾಸ್ ಟೆಂಪ್ಲೆಟ್ಗಳ ವ್ಯಾಖ್ಯಾನಗಳನ್ನು <ಸ್ಟ್ರೀಮ್> ಒಳಗೊಂಡಿದೆ. <ಅಯೋಮಾನಿಪ್> ಫಾರ್ಮ್ಯಾಟಿಂಗ್ ಮ್ಯಾನಿಪುಲೇಟರ್ಗಳನ್ನು ಒಳಗೊಂಡಿದೆ. <ಐ. ಓ. ಎಸ್. ಎಫ್. ಡಬ್ಲ್ಯೂ. ಡಿ.> ಇನ್ಪುಟ್/ಔಟ್ಪುಟ್ ಲೈಬ್ರರಿಯಲ್ಲಿರುವ ಎಲ್ಲಾ ವರ್ಗಗಳ ಮುಂಗಡ ಘೋಷಣೆಗಳನ್ನು ಹೊಂದಿರುತ್ತದೆ. ಸಿ + + ಭಾಷೆಯಲ್ಲಿ ಟೇಬಲ್ ಎಂದು ವ್ಯಾಖ್ಯಾನಿಸಲಾದ ಹನ್ನೆರಡು ಸ್ಟ್ರೀಮ್ ಬಫರ್ ವರ್ಗಗಳಿವೆ. ಬೆಂಬಲ ವರ್ಗಗಳಾದ ಐಓಎಸ್ ಬೇಸ್ ಮತ್ತು ಬೇಸಿಕ್ ಐಓಎಸ್ಗಳು ಸ್ಟ್ರೀಮ್ನ ಕೆಳಮಟ್ಟದ ಬಿಟ್ಗಳನ್ನು ನಿರ್ವಹಿಸುವ ಎರಡು ವರ್ಗಗಳಾಗಿವೆ. ಮಾಹಿತಿ ಮತ್ತು ಸ್ಟ್ರೀಮ್ನ ಸ್ಥಿತಿಯನ್ನು ರೂಪಿಸುವ ಐಓಎಸ್ _ ಬೇಸ್ ಮಳಿಗೆಗಳು. Basic _ ios ಸಂಬಂಧಿತ ಸ್ಟ್ರೀಮ್-ಬಫರ್ ಅನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ. ಬೇಸಿಕ್ _ ಐಒಎಸ್ ಅನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ಸರಳವಾಗಿ ಐಒಎಸ್ ಅಥವಾ ವಿಒಎಸ್ ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ, ಇವು ಒಂದು ನಿರ್ದಿಷ್ಟ ಅಕ್ಷರದ ಪ್ರಕಾರವನ್ನು ಹೊಂದಿರುವ ಬೇಸಿಕ್ _ ಐಒಎಸ್ಗೆ ಎರಡು ಟೈಪೆಡೆಫ್ಗಳಾಗಿವೆ. ಬೇಸಿಕ್ _ ಐಓಎಸ್ ಮತ್ತು ಐಓಎಸ್ _ ಬೇಸ್ ಅನ್ನು ಪ್ರೋಗ್ರಾಮರ್ಗಳು ನೇರವಾಗಿ ಬಳಸುವುದು ಬಹಳ ಅಪರೂಪ. ಸಾಮಾನ್ಯವಾಗಿ, ಅವುಗಳ ಕಾರ್ಯವನ್ನು ಅವುಗಳನ್ನು ಆನುವಂಶಿಕವಾಗಿ ಪಡೆಯುವ ಐಯೋಸ್ಟ್ರೀಮ್ನಂತಹ ಇತರ ವರ್ಗಗಳ ಮೂಲಕ ಪ್ರವೇಶಿಸಲಾಗುತ್ತದೆ. ಟೈಪ್ಡೆಫ್ಸ್ ಫಾರ್ಮ್ಯಾಟಿಂಗ್ ಮ್ಯಾನಿಪುಲೇಟರ್ಗಳು ಇನ್ಪುಟ್/ಔಟ್ಪುಟ್ ಸ್ಟ್ರೀಮ್ಗಳು ಸಿ + + ಇನ್ಪುಟ್/ಔಟ್ಪುಟ್ ಸ್ಟ್ರೀಮ್ಗಳನ್ನು ಪ್ರಾಥಮಿಕವಾಗಿ ಸಿ + + ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಲೈಬ್ರರಿಯ ಭಾಗವಾಗಿರುವ ಹೆಡರ್ ಫೈಲ್ ಐಯೋಸ್ಟ್ರೀಮ್ನಿಂದ ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆ (ಹೆಸರು ಇನ್ಪುಟ್/ಔಟ್ಪುಟ್ ಸ್ಟ್ರೀಮ್ ಅನ್ನು ಸೂಚಿಸುತ್ತದೆ). ಸಿ + + ಮತ್ತು ಅದರ ಪೂರ್ವವರ್ತಿಯಾದ ಸಿ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯಲ್ಲಿ, ಡೇಟಾ ಇನ್ಪುಟ್ ಅಥವಾ ಔಟ್ಪುಟ್ ಅನ್ನು ಸ್ಟ್ರೀಮಿಂಗ್ ಮಾಡಲು ಯಾವುದೇ ವಿಶೇಷ ವಾಕ್ಯರಚನೆಯಿಲ್ಲ. ಬದಲಿಗೆ, ಇವುಗಳನ್ನು ಕಾರ್ಯಗಳ ಗ್ರಂಥಾಲಯವಾಗಿ ಸಂಯೋಜಿಸಲಾಗಿದೆ. C ಯ stdio.h ನಿಂದ ಆನುವಂಶಿಕವಾಗಿ ಪಡೆದ cstdio ಹೆಡರ್ನಂತೆ, ಅಯೋಸ್ಟ್ರೀಮ್ C + + ಪ್ರೋಗ್ರಾಂಗಳಿಗೆ ಮೂಲಭೂತ ಇನ್ಪುಟ್ ಮತ್ತು ಔಟ್ಪುಟ್ ಸೇವೆಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ. ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಸ್ಟ್ರೀಮ್ಗಳ ಇನ್ಪುಟ್, ಔಟ್ಪುಟ್, ಎರರ್ (ಅನ್ಬಫರ್ಡ್) ಮತ್ತು ಲಾಗ್ (ಬಫರ್ಡ್) ಗೆ ಮತ್ತು ಅಲ್ಲಿಂದ ಡೇಟಾವನ್ನು ಕಳುಹಿಸಲು ಅಯೋಸ್ಟ್ರೀಮ್ ಆಬ್ಜೆಕ್ಟ್ಗಳಾದ ಸಿನ್, ಕೌಟ್, ಸೆರ್ ಮತ್ತು ಕ್ಲಾಗ್ ಅನ್ನು ಬಳಸುತ್ತದೆ. ಸಿ + + ಪ್ರಮಾಣಿತ ಗ್ರಂಥಾಲಯದ ಭಾಗವಾಗಿ, ಈ ವಸ್ತುಗಳು ಎಸ್ಟಿಡಿ ನೇಮ್ಸ್ಪೇಸ್ನ ಒಂದು ಭಾಗವಾಗಿದೆ. ಕೌಟ್ ಆಬ್ಜೆಕ್ಟ್ ಓಸ್ಟ್ರೀಮ್ ಪ್ರಕಾರದ್ದಾಗಿದೆ, ಇದು ಎಡ ಬಿಟ್-ಶಿಫ್ಟ್ ಆಪರೇಟರ್ ಅನ್ನು ಬಿಟ್ವೈಸ್ ಕಾರ್ಯಾಚರಣೆಗಳಿಗೆ ಸಂಪೂರ್ಣವಾಗಿ ಸಂಬಂಧವಿಲ್ಲದ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ನಿರ್ವಹಿಸುವಂತೆ ಅತಿಯಾಗಿ ಲೋಡ್ ಮಾಡುತ್ತದೆ ಮತ್ತು ಗಮನಾರ್ಹವಾಗಿ ಎಡ ವಾದದ ಮೌಲ್ಯಕ್ಕೆ ಮೌಲ್ಯಮಾಪನ ಮಾಡುತ್ತದೆ, ಒಂದೇ ಓಸ್ಟ್ರೀಮ್ ವಸ್ತುವಿನ ಮೇಲೆ ಅನೇಕ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ಅನುಮತಿಸುತ್ತದೆ, ಮೂಲಭೂತವಾಗಿ ಕ್ಯಾಸ್ಕೇಡಿಂಗ್ ವಿಧಾನಕ್ಕೆ ವಿಭಿನ್ನ ವಾಕ್ಯರಚನೆಯಾಗಿ, ನಿರರ್ಗಳವಾದ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ಬಹಿರಂಗಪಡಿಸುತ್ತದೆ. ಸೆರ್ ಮತ್ತು ಕ್ಲಾಗ್ ವಸ್ತುಗಳು ಸಹ ಓಸ್ಟ್ರೀಮ್ ಪ್ರಕಾರದಲ್ಲಿರುತ್ತವೆ, ಆದ್ದರಿಂದ ಅವು ಆ ಆಪರೇಟರ್ ಅನ್ನು ಸಹ ಓವರ್ಲೋಡ್ ಮಾಡುತ್ತವೆ. ಸಿನ್ ಆಬ್ಜೆಕ್ಟ್ ಐಸ್ಟ್ರೀಮ್ ಪ್ರಕಾರದ್ದಾಗಿದೆ, ಇದು ಬಲ ಬಿಟ್-ಶಿಫ್ಟ್ ಆಪರೇಟರ್ ಅನ್ನು ಓವರ್ಲೋಡ್ ಮಾಡುತ್ತದೆ. ಬಿಟ್-ಶಿಫ್ಟ್ ಆಪರೇಟರ್ಗಳ ನಿರ್ದೇಶನಗಳು ದತ್ತಾಂಶವು ಔಟ್ಪುಟ್ ಸ್ಟ್ರೀಮ್ ಕಡೆಗೆ ಹರಿಯುತ್ತಿದೆ ಅಥವಾ ಇನ್ಪುಟ್ ಸ್ಟ್ರೀಮ್ನಿಂದ ದೂರ ಹರಿಯುತ್ತಿದೆ ಎಂದು ತೋರುತ್ತದೆ. ಔಟ್ಪುಟ್ ಫಾರ್ಮ್ಯಾಟಿಂಗ್ ವಿಧಾನಗಳು ಮ್ಯಾನಿಪ್ಯುಲೇಟರ್ಗಳು ಎಂದರೆ <<ಅಥವಾ>> ಆಪರೇಟರ್ಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಸ್ಟ್ರೀಮ್ ಅನ್ನು ಮಾರ್ಪಡಿಸುವ ವಸ್ತುಗಳು. ಶೀರ್ಷಿಕೆ ಅಯೋಮಾನಿಪ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ಇತರ ಮ್ಯಾನಿಪುಲೇಟರ್ಗಳನ್ನು ಕಾಣಬಹುದು. ವಿಮರ್ಶೆ ಫಾರ್ಮ್ಯಾಟಿಂಗ್ ಮ್ಯಾನಿಪುಲೇಟರ್ಗಳನ್ನು ಕೊನೆಯಲ್ಲಿ "ಮರುಹೊಂದಿಸಬೇಕು" ಅಥವಾ ಪ್ರೋಗ್ರಾಮರ್ ಅನಿರೀಕ್ಷಿತವಾಗಿ ಮುಂದಿನ ಔಟ್ಪುಟ್ ಹೇಳಿಕೆಯಲ್ಲಿ ತಮ್ಮ ಪರಿಣಾಮಗಳನ್ನು ಪಡೆಯುತ್ತಾರೆ. ಸಿ + + ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಲೈಬ್ರರಿಯ ಕೆಲವು ಅನುಷ್ಠಾನಗಳು ಗಮನಾರ್ಹ ಪ್ರಮಾಣದ ಡೆಡ್ ಕೋಡ್ ಅನ್ನು ಹೊಂದಿವೆ. ಉದಾಹರಣೆಗೆ, ಜಿ. ಎನ್. ಯು. libstdc + + ಒಂದು ಓಸ್ಟ್ರೀಮ್ ಅನ್ನು ನಿರ್ಮಿಸುವಾಗ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಒಂದು ಲೊಕೇಲ್ ಅನ್ನು ನಿರ್ಮಿಸುತ್ತದೆ, ಒಂದು ಪ್ರೋಗ್ರಾಂ ಲೊಕೇಲ್ ಮೇಲೆ ಪರಿಣಾಮ ಬೀರುವ ಯಾವುದೇ ಪ್ರಕಾರವನ್ನು (ದಿನಾಂಕ, ಸಮಯ ಅಥವಾ ಹಣ) ಎಂದಿಗೂ ಬಳಸದಿದ್ದರೂ ಸಹ, ಮತ್ತು ಸ್ಥಿರವಾಗಿ ಲಿಂಕ್ ಮಾಡಲಾದ "ಹಲೋ, ವರ್ಲ್ಡ್!" ಗ್ನು libstdc + + ನ <ಐಯೋಸ್ಟ್ರೀಮ್> ಅನ್ನು ಬಳಸುವ ಪ್ರೋಗ್ರಾಂ, <cstdio> ಅನ್ನು ಬಳಸುವ ಸಮಾನ ಪ್ರೋಗ್ರಾಂಗಿಂತ ದೊಡ್ಡ ಪ್ರಮಾಣದ ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಕ್ರಮವನ್ನು ಉತ್ಪಾದಿಸುತ್ತದೆ. ಬಾಹ್ಯಾಕಾಶ-ನಿರ್ಬಂಧಿತ ಪರಿಸರಕ್ಕಾಗಿ ವಿನ್ಯಾಸಗೊಳಿಸಲಾದ ಸಿ + + ಪ್ರಮಾಣಿತ ಗ್ರಂಥಾಲಯದ ಭಾಗಶಃ ಅನುಷ್ಠಾನಗಳು ಅಸ್ತಿತ್ವದಲ್ಲಿವೆ; ಅವುಗಳ <ಐಯೋಸ್ಟ್ರೀಮ್> ಅಂತಹ ಪರಿಸರದಲ್ಲಿ ಪ್ರೋಗ್ರಾಂಗಳಿಗೆ ಅಗತ್ಯವಿಲ್ಲದ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಬಿಟ್ಟುಬಿಡಬಹುದು, ಉದಾಹರಣೆಗೆ ಲೋಕೇಲ್ ಬೆಂಬಲ. ನಾಮಕರಣ ಸಂಪ್ರದಾಯಗಳು ಉದಾಹರಣೆಗಳು ಕ್ಯಾನೊನಿಕಲ್ "ಹಲೋ, ವರ್ಲ್ಡ್!" ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ಈ ಕೆಳಗಿನಂತೆ ವ್ಯಕ್ತಪಡಿಸಬಹುದುಃ #include <ಐಯೋಸ್ಟ್ರೀಮ್> ಇಂಟ್ ಮೇನ್ () {ಎಸ್ಟಿಡಿಃಃ ಕೌಟ್ <<"ಹಲೋ, ವರ್ಲ್ಡ್!" ಈ ಪ್ರೋಗ್ರಾಂ "ಹಲೋ, ವರ್ಲ್ಡ್!" ಅನ್ನು ಔಟ್ಪುಟ್ ಮಾಡುತ್ತದೆ. ಅದರ ನಂತರ ಹೊಸ ಸಾಲು ಮತ್ತು ಪ್ರಮಾಣಿತ ಔಟ್ಪುಟ್ ಸ್ಟ್ರೀಮ್ ಬಫರ್ ಫ್ಲಶ್. ಈ ಕೆಳಗಿನ ಉದಾಹರಣೆಯು 'file.txt' ಎಂಬ ಕಡತವನ್ನು ರಚಿಸುತ್ತದೆ ಮತ್ತು 'ಹಲೋ, ವರ್ಲ್ಡ್!' ಎಂಬ ಪಠ್ಯವನ್ನು ಇರಿಸುತ್ತದೆ. ಅದರ ನಂತರ ಹೊಸ ಸಾಲು. #include <f ಸ್ಟ್ರೀಮ್> int ಮುಖ್ಯ () {std:: ಆಫ್ಸ್ಟ್ರೀಮ್ ಕಡತ ("file.txt"); ಕಡತ <<"ಹಲೋ, ವರ್ಲ್ಡ್!" ಬಾಹ್ಯ ಕೊಂಡಿಗಳು ಇನ್ಪುಟ್/ಔಟ್ಪುಟ್ ಲೈಬ್ರರಿಗಾಗಿ ಸಿ + + ಉಲ್ಲೇಖಗಳು ಅಪಾಚೆ ಸಿ + + ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಲೈಬ್ರರಿ ಐಯೋಸ್ಟ್ರೀಮ್ಗಳು ಸಿ + + ಸಿ + + ಸಿ + + ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಲೈಬ್ರರಿ ಲೇಖನಗಳಲ್ಲಿ ಔಟ್ಪುಟ್ ಅನ್ನು ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡುವ ಸಮಗ್ರ ಟ್ಯುಟೋರಿಯಲ್ ಉದಾಹರಣೆಗೆ ಸಿ + + ಕೋಡ್