[Powered by Google Translate] [ಫೈಲ್ I / O] [ಜಾಸನ್ ಹಿರ್ಸ್ಚೋರ್ನ್, ಹಾರ್ವರ್ಡ್ ವಿಶ್ವವಿದ್ಯಾಲಯ] [ಇದು CS50.TV CS50 ಹೊಂದಿದೆ] ನಾವು ಒಂದು ಕಡತದ ಯೋಚನೆ ಮಾಡಿದರೆ, ಏನು, ಒಂದು ಮೈಕ್ರೊಸಾಫ್ಟ್ ವರ್ಡ್ ದಸ್ತಾವೇಜು ಮನಸ್ಸಿಗೆ ಬರುತ್ತದೆ ಒಂದು JPEG ಚಿತ್ರ, ಅಥವಾ ಒಂದು MP3 ಹಾಡು, ಮತ್ತು ನಾವು ವಿವಿಧ ರೀತಿಯಲ್ಲಿ ಕಡತಗಳನ್ನು ಈ ರೀತಿಯ ಪ್ರತಿಯೊಂದು ಸಂವಹನ. ಉದಾಹರಣೆಗೆ, ಒಂದು ದಾಖಲ ನಾವು ಪಠ್ಯ ಸೇರಿಸಿ ಒಂದು JPEG ಚಿತ್ರ ನಾವು ಅಂಚುಗಳ ಔಟ್ ಕ್ರಾಪ್ ಅಥವಾ ಬಣ್ಣಗಳು ಪರಿಷ್ಕರಿಸು ಇರಬಹುದು ಆದರೆ. ಇನ್ನೂ HOOD ಅಡಿಯಲ್ಲಿ ನಮ್ಮ ಕಂಪ್ಯೂಟರ್ ಕಡತಗಳ ಎಲ್ಲಾ ಹೆಚ್ಚು ಏನೂ ಗಳು ಸೊನ್ನೆಗಳು ಮತ್ತು ಬಿಡಿಗಳ ಸುದೀರ್ಘ ಸರಣಿಯನ್ನು ಹೊರತುಪಡಿಸಿ. ಇದು ಕಡತ ಪರಸ್ಪರ ನಿರ್ದಿಷ್ಟ ಅಪ್ಲಿಕೇಶನ್ ಬಿಟ್ಟಿದ್ದು ಈ ಸುದೀರ್ಘ ಸರಣಿಯನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲು ಮತ್ತು ಬಳಕೆದಾರರು ಇದನ್ನು ಪ್ರಸ್ತುತಪಡಿಸಲು ಹೇಗೆ ನಿರ್ಧರಿಸುವುದು. ಒಂದು ಕಡೆ, ಒಂದು ದಾಖಲೆ, ಕೇವಲ ಒಂದು ಬೈಟ್ ನೋಡಲು ಮಾಡಬಹುದು ಅಥವಾ 8 ಸೊನ್ನೆಗಳು ಮತ್ತು ಬಿಡಿಗಳು, ಮತ್ತು ತೆರೆಯ ಮೇಲೆ ಒಂದು ASCII ಅಕ್ಷರ ಪ್ರದರ್ಶಿಸಲು. ಮತ್ತೊಂದೆಡೆ, ಒಂದು ಬಿಟ್ಮ್ಯಾಪ್ ಚಿತ್ರ, 3 ಬೈಟ್ಗಳು ನೋಡಲು ಮಾಡಬಹುದು ಅಥವಾ 24 ಸೊನ್ನೆಗಳು ಮತ್ತು ಸಾವು ಮತ್ತು 3 ಹೆಕ್ಸಾಡೆಸಿಮಲ್ ಸಂಖ್ಯೆಗಳನ್ನು ಅವುಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುವ ಕೆಂಪು, ಹಸಿರು, ಮತ್ತು ನೀಲಿ ಮೌಲ್ಯಗಳನ್ನು ಪ್ರತಿನಿಧಿಸಲು ಚಿತ್ರವನ್ನು ಒಂದು ಪಿಕ್ಸೆಲ್ ರಲ್ಲಿ. ಏನೇ ತಮ್ಮ ಅಂತರಂಗದಲ್ಲಿ, ನಿಮ್ಮ ಪರದೆಯ ಮೇಲೆ ಕಾಣುವಂತೆ ಮಾಡಬಹುದು ಕಡತಗಳನ್ನು ಸೊನ್ನೆಗಳು ಮತ್ತು ಬಿಡಿಗಳ ಅನುಕ್ರಮ ಹೆಚ್ಚೇನೂ ಇವೆ. ಆದ್ದರಿಂದ ನಾವು ರಲ್ಲಿ ಧುಮುಕುವುದಿಲ್ಲ ಮತ್ತು ನಾವು ವಾಸ್ತವವಾಗಿ ಈ ಸೊನ್ನೆಗಳು ಮತ್ತು ಬಿಡಿಗಳ ಕುಶಲತೆಯಿಂದ ಹೇಗೆ ನೋಡಲು ಇದನ್ನು ಬರೆಯಲು ಮತ್ತು ಒಂದು ಕಡತದಿಂದ reading ಗೆ ಬಂದಾಗ. ನಾನು ಸರಳ 3 ಭಾಗದ ಪ್ರಕ್ರಿಯೆಯಲ್ಲಿ ಅದನ್ನು ಒಡೆಯುವ ಮೂಲಕ ಪ್ರಾರಂಭಿಸಿ. ಮುಂದೆ, ನಾನು ಈ ಮೂರು ಭಾಗಗಳು ಪ್ರದರ್ಶಿಸುವ ಎರಡು ಕೋಡ್ ಉದಾಹರಣೆಗಳು ಆಗಿ ಧುಮುಕುವುದಿಲ್ಲ ಮಾಡುತ್ತೇವೆ. ಅಂತಿಮವಾಗಿ, ನಾನು ಪ್ರಕ್ರಿಯೆ ಪರಿಶೀಲಿಸಿ ಮತ್ತು ಅದರ ಪ್ರಮುಖ ವಿವರಗಳು ಕೆಲವು ಮಾಡುತ್ತೇವೆ. ನಿಮ್ಮ ಡೆಸ್ಕ್ ಟಾಪ್ ಮೇಲೆ ಕುಳಿತು ಯಾವುದೇ ಕಡತದಲ್ಲಿ, ಮಾಡಲು ಮೊದಲನೆಯದಾಗಿ ಇದು ತೆರೆಯುವುದು. ಸಿ ನಾವು ಪೂರ್ವನಿರ್ಧರಿತ struct ಒಂದು ಪಾಯಿಂಟರ್ ಘೋಷಿಸುವ ಮೂಲಕ ಇದನ್ನು ಡಿಸ್ಕ್ ಒಂದು ಕಡತ ಪ್ರತಿನಿಧಿಸುತ್ತದೆ. ಈ ಕಾರ್ಯವನ್ನು ಕರೆಯಲ್ಲಿ, ನಾವು ನಾವು ಬರೆಯಲು ಅಥವಾ ಕಡತದಿಂದ ಓದಲು ನಿರ್ಧರಿಸಿದರು. ಮುಂದೆ, ನಾವು ನಿಜವಾದ ಓದುವ ಮತ್ತು ಬರೆಯುವ ಹಾಗೆ. ಈ ಭಾಗದಲ್ಲಿ ಬಳಸಬಹುದು ವಿಶೇಷ ಕಾರ್ಯಗಳನ್ನು ಅನೇಕ ಇವೆ ಮತ್ತು ಬಹುತೇಕ ಎಲ್ಲ ಕಡತ ನಿಂತಿರುವ ಲೆಟರ್ ಎಫ್, ಪ್ರಾರಂಭಿಸಿ. ಕೊನೆಯ, ಫೈಲ್ಗಳನ್ನು ಮೇಲಿನ ಮೂಲೆಯಲ್ಲಿ ಸ್ವಲ್ಪ ಕೆಂಪು X ಸದೃಶವಾಗಿ ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ನಲ್ಲಿ ತೆರೆಯಲು ನಾವು ಅಂತಿಮ ಕ್ರಿಯೆ ಕರೆಯೊಂದಿಗೆ ಕಡತ ಮುಚ್ಚಿ. ಈಗ ನಾವು ಏನು ನೀನು ಯಾವ ಸಾಮಾನ್ಯ ಕಲ್ಪನೆಯನ್ನು ಹೊಂದಿರುವ, ಕೋಡ್ಗೆ ಡೈವ್ ನೋಡೋಣ. ಈ ಕೋಶದಲ್ಲಿ, ನಾವು ಎರಡು ಸಿ ಫೈಲ್ಗಳು ಮತ್ತು ಅವುಗಳ ಕಾರ್ಯಗತಗೊಳ್ಳಬಹುದಾದ ಕಡತಗಳು ಹೊಂದಿರುತ್ತವೆ. ಬೆರಳಚ್ಚು ಯಂತ್ರದ ಪ್ರೋಗ್ರಾಮ್, ಒಂದು ಆಜ್ಞೆ ಸಾಲಿನ ಆರ್ಗುಮೆಂಟನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ ನಾವು ಸೃಷ್ಟಿಸಲು ಬಯಸುವ ಡಾಕ್ಯುಮೆಂಟ್ ಹೆಸರು. ಈ ಸಂದರ್ಭದಲ್ಲಿ, ನಾವು doc.txt ಕರೆ ಮಾಡುತ್ತೇವೆ. ಕಾರ್ಯಕ್ರಮದ ರನ್ ಮತ್ತು ಸಾಲುಗಳನ್ನು ಒಂದೆರಡು ನಮೂದಿಸಿ ಲೆಟ್. ಹಾಯ್. ನನ್ನ ಹೆಸರು ಜೇಸನ್ ಹೊಂದಿದೆ. ಅಂತಿಮವಾಗಿ, ನಾವು "ಬಿಟ್ಟು." ಟೈಪ್ ವಿಲ್ ನಾವು ಈಗ ಈ ಕೋಶದಲ್ಲಿ ಕಡತಗಳನ್ನು ಎಲ್ಲಾ ಪಟ್ಟಿ ವೇಳೆ ನಾವು ಒಂದು ಹೊಸ ಡಾಕ್ಯುಮೆಂಟ್ doc.txt ಎಂಬ ಹೆಸರಿನ ಎಂದು ನೋಡಿ. ಫೈಲ್ ಕೇವಲ ದಾಖಲಿಸಿದವರು ಈ ಕಾರ್ಯಕ್ರಮವು ಆ. ಮತ್ತು ಸಹಜವಾಗಿ, ಇದು ತುಂಬಾ ಸೊನ್ನೆಗಳು ಮತ್ತು ಬಿಡಿಗಳ ಸುದೀರ್ಘ ಸರಣಿಯನ್ನು ಹೆಚ್ಚೇನೂ. ಈ ಹೊಸ ಕಡತವನ್ನು ತೆರೆಯಲು ವೇಳೆ, ನಾವು ನಮ್ಮ ಪ್ರೋಗ್ರಾಂ ಪ್ರವೇಶಿಸಿತು ಕೋಡ್ 3 ಸಾಲುಗಳನ್ನು ನೋಡಿ - ಹಾಯ್. ಮೇ ಹೆಸರು ಜೇಸನ್ ಹೊಂದಿದೆ. ಆದರೆ ನಿಜವಾಗಿ typewriter.c ರನ್ ಮಾಡಿದಾಗ ವಿಶೇಷವೇನು? ನಮಗೆ ಆಸಕ್ತಿ ಮೊದಲ ಸಾಲು ಸಾಲು 24. ಈ ಸಾಲಿನಲ್ಲಿ ನಮ್ಮ ಫೈಲ್ ಪಾಯಿಂಟರ್ ಘೋಷಿಸಿದ. ಈ ಪಾಯಿಂಟರ್, fopen ಮರಳಿಸುವ ಕಾರ್ಯವನ್ನು ಎರಡು ವಾದಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ. ಮೊದಲ ಕಡತ ವಿಸ್ತರಣೆಯನ್ನು ಸರಿಯಾದ ವೇಳೆ ಸೇರಿದಂತೆ ಫೈಲ್ ಹೆಸರು. ಒಂದು ಕಡತ ವಿಸ್ತರಣೆಯನ್ನು ಅದರ ಕಡಿಮೆ ಮಟ್ಟದಲ್ಲಿ ಕಡತ ಪರಿಣಾಮವನ್ನೇನೂ ಬೀರುವುದಿಲ್ಲ ಎಂದು ನೆನಪಿಸಿಕೊಳ್ಳುತ್ತಾರೆ. ನಾವು ಯಾವಾಗಲೂ ಸೊನ್ನೆಗಳು ಮತ್ತು ಬಿಡಿಗಳ ಸುದೀರ್ಘ ಸರಣಿಯನ್ನು ಮಾತಾಡುತ್ತಿದ್ದೀರಿ. ಆದರೆ ಕಡತಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆ ಮತ್ತು ಅಪ್ಲಿಕೇಶನ್ಗಳು ಅವುಗಳನ್ನು ತೆರೆಯಲು ಬಳಸಲಾಗುತ್ತದೆ ಹೇಗೆ ಪ್ರಭಾವ ಮಾಡುತ್ತದೆ. fopen ಎರಡನೇ ಆರ್ಗ್ಯುಮೆಂಟ್ ಒಂದು ಪತ್ರ ಎಂದು ನಾವು ಕಡತವನ್ನು ತೆರೆಯಲು ನಂತರ ಮಾಡಲು ಯೋಜನೆ ಏನನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತದೆ. W, ಆರ್, ಮತ್ತು ಎ - ಈ ವಾದ ಮೂರು ಲಭ್ಯವಿದೆ ನಾವು ಕಡತಕ್ಕೆ ಬರೆಯಲು ಬಯಸುವ ಏಕೆಂದರೆ ನಾವು ಈ ಸಂದರ್ಭದಲ್ಲಿ W ಆಯ್ಕೆ ಮಾಡಿದ. ಆರ್, ನೀವು ಬಹುಶಃ ಊಹೆ ಮಾಡಬಹುದು ಎಂದು, ಕಡತವನ್ನು ಓದಲು ಹೊಂದಿದೆ. ಮತ್ತು ಒಂದು ಕಡತಕ್ಕೆ ಸೇರಿಸುವುದರಿಂದ ಮಾತ್ರ. ಆದರೆ W ಮತ್ತು ಕಡತಗಳನ್ನು ಬರೆಯಲು ಬಳಸಬಹುದಾಗಿದೆ ಎರಡೂ, W ಕಡತದ ಆರಂಭದಿಂದ ಬರೆಯುವ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ ಮತ್ತು ಸಂಭಾವ್ಯ ಹಿಂದೆ ಶೇಖರಿಸಿದ ಯಾವುದೇ ಡೇಟಾವನ್ನು ಬದಲಿಸಿ. ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ, ಇದು ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲ ನಾವು, ತೆರೆಯಲು ಕಡತ, ನಮ್ಮ ಪ್ರಸ್ತುತ ಕೆಲಸ ಕೋಶವನ್ನು ಸೃಷ್ಟಿಯಾದ. ಆದರೆ, ನಾವು ಬೇರೆ ಸ್ಥಳದಲ್ಲಿ ಒಂದು ಕಡತವನ್ನು ಪ್ರವೇಶಿಸಲು ಅಥವಾ ರಚಿಸಲು ಬಯಸಿದರೆ, fopen ಮೊದಲ ವಾದದಲ್ಲಿನ, ನಾವು ಫೈಲ್ ಹೆಸರು ಜೊತೆಗೆ ಒಂದು ಕಡತ ಪಥವನ್ನು ಸೂಚಿಸಬಹುದು. ಈ ಪ್ರಕ್ರಿಯೆಯ ಮೊದಲ ಭಾಗವಾಗಿ ದೀರ್ಘ ಕೋಡ್ ಒಂದೇ ಸಾಲು, ಹಾಗೆಯೇ ಇದು ರೇಖೆಗಳ ಮತ್ತೊಂದು ಸೇರಿಸಲು ಯಾವಾಗಲೂ ಉತ್ತಮ ಇಲ್ಲಿದೆ ಫೈಲ್ ಯಶಸ್ವಿಯಾಗಿ ಆರಂಭವಾಯಿತು ಅಥವಾ ಸ್ಥಾಪಿಸಲಾಯಿತು ಖಚಿತಪಡಿಸಲು ಪರಿಶೀಲಿಸಿ. Fopen ಶೂನ್ಯ ಹಿಂದಿರುಗಿಸುತ್ತದೆ, ನಾವು, ನಮ್ಮ ಕಾರ್ಯಕ್ರಮ ಮುಂದಕ್ಕೆ ಸೃಷ್ಟಿಸಲು ಬಯಸುವ ಎಂದು ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಂ ಮೆಮೊರಿ ಔಟ್ ವೇಳೆ ಈ ಸಂಭವಿಸಬಹುದು ಅಥವಾ ನಾವು ಸರಿಯಾದ ಅನುಮತಿಗಳನ್ನು ಹೊಂದಿರಲಿಲ್ಲ ಒಂದು ಕೋಶದಲ್ಲಿ ಒಂದು ಕಡತವನ್ನು ತೆರೆಯಲು ಪ್ರಯತ್ನಿಸಿದರೆ. ಪ್ರಕ್ರಿಯೆಯ ಭಾಗ ಎರಡು ಬೆರಳಚ್ಚುಯಂತ್ರದ ನ ಸಮಯದಲ್ಲಿ ಲೂಪ್ ನಡೆಯುತ್ತದೆ. ನಾವು, ಬಳಕೆದಾರ ಸೂಚನೆಗಳನ್ನು ಪಡೆಯಲು CS50 ಗ್ರಂಥಾಲಯದ ಕಾರ್ಯವನ್ನು ಉಪಯೋಗಿಸಬಹುದು ಮತ್ತು, ಅವರು ಪ್ರೋಗ್ರಾಂನಿಂದ ಹೊರನಡೆ ಬಯಸುವುದಿಲ್ಲ ಊಹಿಸಿಕೊಂಡು ನಾವು ಸಾಲನ್ನು ತೆಗೆದುಕೊಂಡು ಅದನ್ನು ಕಡತಕ್ಕೆ ಬರೆಯಲು ಕಾರ್ಯ fputs ಬಳಸಿ. fputs ನಾವು ಕಡತಕ್ಕೆ ಬರೆಯಲು ಬಳಸುವ ಅನೇಕ ಕಾರ್ಯಗಳನ್ನು ಮಾತ್ರ. ಇತರೆ fwrite, fputc, ಮತ್ತು fprintf ಸೇರಿವೆ. ಹೊರತಾಗಿ ನಿರ್ದಿಷ್ಟ ಕ್ರಿಯೆಯ ನಾವು, ಆದರೂ, ಬಳಸಿ ಕೊನೆಗೊಳ್ಳುತ್ತದೆ ಎಲ್ಲಾ ಅವರ ವಾದಗಳನ್ನು ಮೂಲಕ ಅವಶ್ಯಕತೆ ಕನಿಷ್ಠ ಎರಡು ವಿಷಯಗಳ - ಅದರ ಲಿಖಿತ ಅಗತ್ಯವಿದೆ ಅಲ್ಲಿ ಬರೆದು ಅಗತ್ಯವಿದೆ. ನಮ್ಮ ವಿಷಯದಲ್ಲಿ, ಇನ್ಪುಟ್ ಲಿಖಿತ ಅಗತ್ಯವಿದೆ ಎಂದು ಸ್ಟ್ರಿಂಗ್ ಆಗಿದೆ ಮತ್ತು FP ನಾವು ನಾವು ಬರೆಯುತ್ತಿದ್ದೇವೆ ಅಲ್ಲಿ ನಮ್ಮನ್ನು ನಿರ್ದೇಶಿಸುತ್ತದೆ ಸೂಚಿಯಾಗಿದೆ. ಈ ಕಾರ್ಯಕ್ರಮದಲ್ಲಿ, ಪ್ರಕ್ರಿಯೆಯ ಭಾಗವಾಗಿ ಎರಡು ಬದಲಿಗೆ ನೇರವಾಗಿರುತ್ತದೆ. ನಾವು ಕೇವಲ ಬಳಕೆದಾರರ ಒಂದು ಸಾಲನ್ನು ತೆಗೆದುಕೊಂಡು ನೀವು ಮತ್ತು ನಮ್ಮ ಫೈಲ್ ನೇರವಾಗಿ ಸೇರಿಸಲು ಕಡಿಮೆ ಮಾಡಲು ಯಾವುದೇ ಇನ್ಪುಟ್ ಊರ್ಜಿತಗೊಳಿಸುವಿಕೆ ಅಥವಾ ಭದ್ರತಾ ಪರೀಕ್ಷೆಗಳು ಸೇರಿವೆ. ಸಾಮಾನ್ಯವಾಗಿ, ಆದಾಗ್ಯೂ, ಎರಡನೇ ಭಾಗ ನಿಮ್ಮ ಕೋಡ್ ಬೃಹತ್ ಅಪ್ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ. ನಾವು ಫೈಲ್ ಮುಚ್ಚಿ ಅಲ್ಲಿ ಅಂತಿಮವಾಗಿ, ಭಾಗ ಮೂರು, ಸಾಲು 58 ಮೇಲೆ. ಇಲ್ಲಿ ನಾವು ನಮ್ಮ ಮೂಲ ಕಡತ ಪಾಯಿಂಟರ್ fclose ಮತ್ತು ರವಾನಿಸಲು ಕರೆ. ನಂತರದ ಸಾಲಿನಲ್ಲಿ, ನಮ್ಮ ಕಾರ್ಯಕ್ರಮದ ಕೊನೆಯ ಸಂಕೇತ, ಶೂನ್ಯ ಹಿಂತಿರುಗಿ. ಮತ್ತು, ಹೌದು, ಭಾಗ ಮೂರು ಎಂದು ಮಾಹಿತಿ ಸರಳವಾಗಿದೆ. ನ ಕಡತಗಳನ್ನು ಓದಲು ಕಡೆಗೆ ನೋಡೋಣ. ಮತ್ತೆ ನಮ್ಮ ಕೋಶದಲ್ಲಿ ನಾವು printer.c ಎಂಬ ಕಡತ ಹೊಂದಿರುತ್ತವೆ. ನಾವು ಕೇವಲ ದಾಖಲಿಸಿದವರು ಕಡತವನ್ನು ಚಲಾಯಿಸಲು ಅವಕಾಶ - doc.txt. ಈ ಕಾರ್ಯಕ್ರಮ, ಹೆಸರೇ ಸೂಚಿಸುವಂತೆ, ಕೇವಲ ಕಡತದ ವಿಷಯಗಳನ್ನು ಇದು ರವಾನಿಸಲಾಗಿದೆ ಮುದ್ರಿಸುತ್ತದೆ ಕಾಣಿಸುತ್ತದೆ. ಹಾಗೂ ನಾವು ಹೊಂದಿಲ್ಲ. ಕೋಡ್ ಸಾಲುಗಳನ್ನು ನಾವು ಹಿಂದಿನ ಬೆರಳಚ್ಚು ಮತ್ತು doc.txt ರಲ್ಲಿ ಉಳಿಸಿದ ಎಂದು. ಹಾಯ್. ನನ್ನ ಹೆಸರು ಜೇಸನ್ ಹೊಂದಿದೆ. ವೇಳೆ printer.c ನಾವು ಡೈವ್, ನಾವು ಕೋಡ್ ಸಾಕಷ್ಟು ನಾವು typewriter.c ಮೂಲಕ ನಡೆದರು ಏನು ಹೋಲುತ್ತದೆ ಎಂದು ನೋಡಿ. ನಾವು ಫೈಲ್ ತೆರೆಯಿತು ಅಲ್ಲಿ ವಾಸ್ತವವಾಗಿ ಸಾಲು 22,, ನಾವು ಫೈಲ್ ಮುಚ್ಚಲಾಗಿದೆ ಅಲ್ಲಿ ಮತ್ತು ಸಾಲು 39,, ಎರಡೂ typewriter.c ಬಹುತೇಕ ಒಂದೇ, fopen ಎರಡನೇ ಆರ್ಗ್ಯುಮೆಂಟ್ ಉಳಿಸಿ. ನಾವು ಒಂದು ಕಡತದಿಂದ ಓದಲು ನೀವು ಈ ಸಮಯದಲ್ಲಿ, ಆದ್ದರಿಂದ ನಾವು W ಬದಲಿಗೆ R ಆಯ್ಕೆ ಮಾಡಿದ್ದೀರಿ. ಹೀಗಾಗಿ, ಅವರ ಪ್ರಕ್ರಿಯೆಯ ಎರಡನೇ ಭಾಗದಲ್ಲಿ ಕೇಂದ್ರೀಕರಿಸಲು ಅವಕಾಶ. ಸಾಲು 35 ರಲ್ಲಿ, ನಮ್ಮ 4 ಲೂಪ್ ಎರಡನೇ ಸ್ಥಿತಿ, ನಾವು, fgets ಗೆ ಕರೆ ಮಾಡಿ ಮೊದಲು fputs ಕಂಪ್ಯಾನಿಯನ್ ಟು ಕಾರ್ಯ. ನಾವು ಮೂರು ವಾದಗಳನ್ನು ಹೊಂದಿರುವ ಈ ಸಮಯದಲ್ಲಿ. ಮೊದಲ ಸಾಲನ್ನು ಸಂಗ್ರಹಿಸಲಾಗಿದೆ ಅಲ್ಲಿ ಅಕ್ಷರಗಳ ಶ್ರೇಣಿಯನ್ನು ಸೂಚಿಯಾಗಿದೆ. ಎರಡನೇ ಓದಬಹುದು ಪಾತ್ರಗಳು ಗರಿಷ್ಟ ಸಂಖ್ಯೆ. ಮತ್ತು ಮೂರನೇ ನಾವು ಕೆಲಸ ಮಾಡುತ್ತಿದ್ದೇವೆ ಯಾವ ಕಡತಕ್ಕೆ ಸೂಚಿಯಾಗಿದೆ. ನೀವು fgets ಶೂನ್ಯ ಮರಳಿದಾಗ ಲೂಪ್ ಫಾರ್ ಕೊನೆಗೊಳ್ಳುವ ಗಮನಕ್ಕೆ ಮಾಡುತ್ತೇವೆ. ಈ ಸಂಭವಿಸಿರಬಹುದು ಎರಡು ಕಾರಣ ಇವೆ. ಮೊದಲ, ದೋಷ ಸಂಭವಿಸಿರಬಹುದು. ಎರಡನೇ ಮತ್ತು ಹೆಚ್ಚು, ಕಡತದ ಕೊನೆಯಲ್ಲಿ ತಲುಪಿತು ಮತ್ತು ಯಾವುದೇ ಹೆಚ್ಚಿನ ಅಕ್ಷರಗಳನ್ನು ಓದಲು ಮಾಡಲಾಯಿತು. ನೀವು ಚಕಿತಗೊಳಿಸುತ್ತದೆ ಮಾಡುತ್ತಿರುವ ಸಂದರ್ಭದಲ್ಲಿ, ಎರಡು ಕ್ರಿಯೆಗಳನ್ನು ನಮಗೆ ಅವಕಾಶ ಎಂದು ಅಸ್ತಿತ್ವದಲ್ಲಿವೆ ಯಾವ ಕಾರಣಕ್ಕಾಗಿ ಈ ನಿರ್ದಿಷ್ಟ ಶೂನ್ಯ ಪಾಯಿಂಟರ್ ಕಾರಣವನ್ನು ಹೊಂದಿದೆ. ಮತ್ತು, ನಿರೀಕ್ಷೆಯಂತೆ, ಕಡತಗಳನ್ನು ಕೆಲಸ ಜೊತೆ ಮಾಡಬೇಕು ಏಕೆಂದರೆ, ferror ಕಾರ್ಯ ಮತ್ತು feof ಕಾರ್ಯದ ಆರಂಭದ ಅಕ್ಷರದ ಎಫ್ ಜೊತೆ. ಎರಡೂ ಅಂತಿಮವಾಗಿ, ನಾವು ಅಂತ್ಯಗೊಳಿಸುವ ಮುನ್ನ, ಕಡತ ಕ್ರಿಯೆಯ ಕೊನೆಯಲ್ಲಿ ಬಗ್ಗೆ ಒಂದು ತ್ವರಿತ ಟಿಪ್ಪಣಿ, ಇದು, ಕೇವಲ ಹೇಳಿದಂತೆ, feof ಎಂದು ಬರೆಯಲಾಗಿದೆ. ಸಾಮಾನ್ಯವಾಗಿ ನೀವು ಮಾಡುವಾಗ ಮತ್ತು ಲೂಪ್ ಫಾರ್ ಹಂತಹಂತವಾಗಿ ಕಡತಗಳನ್ನು ಮೂಲಕ ನಿಮ್ಮ ರೀತಿಯಲ್ಲಿ ಓದಲು ಬಳಸಿಕೊಂಡು ನಿಮ್ಮ ಕಾಣುವಿರಿ. ನೀವು ಈ ಕಡತಗಳನ್ನು ಕೊನೆಯಲ್ಲಿ ತಲುಪಲು ನಂತರ ಆದ್ದರಿಂದ, ನೀವು ಈ ಕುಣಿಕೆಗಳು ಕೊನೆಗೊಳಿಸಲು ಒಂದು ರೀತಿಯಲ್ಲಿ ಅಗತ್ಯವಿದೆ. ನಿಮ್ಮ ಕಡತ ಪಾಯಿಂಟರ್ ಮೇಲೆ feof ಕರೆ ಮತ್ತು ಇದು ನಿಜ ಎಂಬುದನ್ನು ಪರಿಶೀಲಿಸುವ ಕೇವಲ ಹಾಗೆ ಎಂದು. ಆದ್ದರಿಂದ, ಪರಿಸ್ಥಿತಿ (! Feof (FP)) ಒಂದು ಸಮಯದಲ್ಲಿ ಲೂಪ್ ಕರಾರುವಾಕ್ಕಾಗಿ ಸೂಕ್ತವಾದ ಪರಿಹಾರವನ್ನು ಹೋಲುವಂತಿದ್ದು ಇರಬಹುದು. ಆದರೆ, ನಾವು ನಮ್ಮ ಪಠ್ಯ ಫೈಲ್ ಉಳಿದ ಒಂದು ಲೈನ್ ಹೊಂದಿವೆ ಸೇ. ನಮ್ಮ ಸಮಯದಲ್ಲಿ ಲೂಪ್ ಅನ್ನು ನಮೂದಿಸಿ ಮತ್ತು ಯೋಜಿಸಿದಂತೆ ಎಲ್ಲವೂ ಕೆಲಸ ಮಾಡುತ್ತದೆ. ಮೂಲಕ ಮುಂದಿನ ಸುತ್ತಿನಲ್ಲಿ ರಂದು, ನಮ್ಮ ಕಾರ್ಯಕ್ರಮ, FP ಆಫ್ feof ನಿಜ ನೀವು ಪರೀಕ್ಷಿಸಿ ಕಾಣಿಸುತ್ತದೆ ಆದರೆ - ಮತ್ತು ಈ ಇಲ್ಲಿ ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ನಿರ್ಣಾಯಕ ಅಂಶವಾಗಿದೆ - ಇದು ಇನ್ನೂ ನಿಜವಾದ ಸಾಧ್ಯವಿಲ್ಲ. Feof ಉದ್ದೇಶಕ್ಕಾಗಿ ಪರಿಶೀಲಿಸಲು ಏಕೆಂದರೆ ಆ ಒಂದು ಓದಲು ಕಾರ್ಯಕ್ಕೆ ಮುಂದಿನ ಕರೆ ಕಡತದ ಕೊನೆಯಲ್ಲಿ ಹೊಡೆಯಲು ಹೋದರೆ, ಆದರೆ ಕಡತದ ಕೊನೆಯಲ್ಲಿ ಈಗಾಗಲೇ ತಲುಪಿದೆ ಇಲ್ಲವೋ ಎಂಬುದನ್ನು ಪರೀಕ್ಷಿಸಲು. ಈ ಉದಾಹರಣೆಯಲ್ಲಿ ಸಂದರ್ಭದಲ್ಲಿ, ನಮ್ಮ ಕಡತದ ಕೊನೆಯ ಸಾಲನ್ನು ಓದುವ ನಿಖರವಾಗಿ ಸರಾಗವಾಗಿ ಹೋಗುತ್ತದೆ, ಆದರೆ ಕಾರ್ಯಕ್ರಮವನ್ನು ಇನ್ನೂ ನಮ್ಮ ಕಡತದ ಕೊನೆಯಲ್ಲಿ ಹೊಡೆಯಲು ನೀವು ಗೊತ್ತಿಲ್ಲ. ಒಂದು ಹೆಚ್ಚುವರಿ ಓದಲು ಮಾಡುತ್ತದೆ ರವರೆಗೆ ಇದು ಅಲ್ಲ ಇದು ಕೌಂಟರ್ ಫೈಲ್ ಕೊನೆಯಲ್ಲಿ ಆ. ಆದ್ದರಿಂದ, ಒಂದು ಸರಿಯಾದ ಸ್ಥಿತಿಯನ್ನು ಕೆಳಗಿನ ಎಂದು: fgets ಮತ್ತು ಅದರ ಮೂರು ವಾದಗಳನ್ನು - ಉತ್ಪಾದನೆ, ಉತ್ಪಾದನೆಯ ಗಾತ್ರ, ಮತ್ತು FP - ಮತ್ತು ಸಮಾನವಾಗಿರುವುದಿಲ್ಲ ಎಲ್ಲಾ ಶೂನ್ಯ ಗೆ. ಇದು ನಾವು printer.c ಹೋಗಿದ್ದರಿಂದ ಮಾರ್ಗ ಮತ್ತು ಈ ಸಂದರ್ಭದಲ್ಲಿ, ಲೂಪ್ ಹೊರಟ ನಂತರ, ನೀವು feof ಅಥವಾ ferror ಈ ಲೂಪ್ ನಿರ್ಗಮಿಸುವ ನಿರ್ದಿಷ್ಟ ತರ್ಕಕ್ಕೆ ಬಳಕೆದಾರ ತಿಳಿಸಲು ಕರೆಯಬಹುದು. ಗೆ ಬರವಣಿಗೆ ಮತ್ತು ಒಂದು ಕಡತವನ್ನು ಓದುವಲ್ಲಿ, ಅದರ ಮೂಲಭೂತ ನಲ್ಲಿ, ಆಗಿದೆ ಸರಳ 3 ಭಾಗದ ಪ್ರಕ್ರಿಯೆ. ಮೊದಲ, ನಾವು ಕಡತವನ್ನು ತೆರೆಯಲು. ಎರಡನೇ, ನಾವು ನಮ್ಮ ಫೈಲ್ ಕೆಲವು ವಿಷಯಗಳನ್ನು ಪುಟ್ ಅಥವಾ ಹೊರಗೆ ಕೆಲವು ವಸ್ತುಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳಬೇಡಿ. ಮೂರನೇ, ನಾವು ಕಡತ ಮುಚ್ಚಿ. ಮೊದಲ ಮತ್ತು ಕೊನೆಯ ಭಾಗಗಳು ಸುಲಭ. ಟ್ರಿಕಿ ಸ್ಟಫ್ ಇರುತ್ತದೆ ಅಲ್ಲಿ ಮಧ್ಯಮ ಭಾಗವಾಗಿದೆ. ಮತ್ತು ಆದರೂ HOOD ಕೆಳಗೆ ನಾವು ಯಾವಾಗಲೂ, ಸೊನ್ನೆಗಳು ಮತ್ತು ಬಿಡಿಗಳ ಸುದೀರ್ಘ ಸರಣಿಯನ್ನು ಮಾತಾಡುತ್ತಿದ್ದೀರಿ ಅಮೂರ್ತತೆಯ ಒಂದು ಪದರ ಸೇರಿಸಲು ಕೋಡಿಂಗ್ ಅದು ಸಹಾಯ ಮಾಡುತ್ತದೆ ಹೆಚ್ಚು ನಿಕಟವಾಗಿ ನಾವು ನೋಡಿದ ಬಳಸಲಾಗುತ್ತದೆ ಏನನ್ನು ಹೋಲುವ ಏನಾದರೂ ಆಗಿ ಅನುಕ್ರಮ ತಿರುಗುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ನಾವು ಒಂದು 24 ಬಿಟ್ ಬಿಟ್ಮ್ಯಾಪ್ ಕಡತ ಕೆಲಸ ಬಳಸುತ್ತಿದ್ದರೆ, ನಾವು ಸಾಧ್ಯತೆ ಓದಲು ಅಥವಾ ಒಂದು ಸಮಯದಲ್ಲಿ ಮೂರು ಬೈಟ್ಗಳು ಬರೆಯುವ ಪಡೆದುಕೊಳ್ಳುತ್ತೀರಿ. ಈ ಸಂದರ್ಭದಲ್ಲಿ, ಅದನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಲು ಮತ್ತು ಸೂಕ್ತವಾಗಿ ಹೆಸರಿಸಲು ಅರ್ಥ ಎಂದು 3 ಬೈಟ್ಗಳು ದೊಡ್ಡ ಒಂದು struct. ಕಡತಗಳನ್ನು ಕೆಲಸ ಸಂಕೀರ್ಣ ಕಾಣಿಸಬಹುದು ಆದಾಗ್ಯೂ, ಅವುಗಳನ್ನು ಬಳಸಿಕೊಂಡು ನಮಗೆ ನಿಜವಾಗಿಯೂ ಗಮನಾರ್ಹ ಏನೋ ಮಾಡಲು ಅನುಮತಿಸುತ್ತದೆ. ನಾವು, ನಮ್ಮ ಕಾರ್ಯಕ್ರಮದ ಹೊರಗೆ ವಿಶ್ವದ ರಾಜ್ಯದ ಬದಲಾಯಿಸಬಹುದು ನಾವು, ನಮ್ಮ ಕಾರ್ಯಕ್ರಮದ ಜೀವನ ಮೀರಿ ಜೀವಿಸುವ ಏನೋ ರಚಿಸಬಹುದು ಅಥವಾ ನಾವು ನಮ್ಮ ಕಾರ್ಯಕ್ರಮವನ್ನು ನಡೆಸುವ ಮೊದಲು ಸೃಷ್ಟಿಯಾಯಿತು ಏನೋ ಬದಲಾಯಿಸಬಹುದು. ಕಡತಗಳನ್ನು ಪರಸ್ಪರ ಸಿ ಕಾರ್ಯಕ್ರಮಗಳನ್ನು ಒಂದು ನಿಜವಾಗಿಯೂ ಪ್ರಬಲ ಭಾಗವಾಗಿದೆ ಮತ್ತು ನಾನು ಬರಲು ಕೋಡ್ ರಲ್ಲಿ ಇದನ್ನು ರಚಿಸಲು ನೀನು ಎಂಬುದನ್ನು ಖುಷಿ ತಂದಿದೆ. ನನ್ನ ಹೆಸರು ಜೇಸನ್ ಹಿರ್ಸ್ಚೋರ್ನ್ ಹೊಂದಿದೆ. ಈ CS50 ಹೊಂದಿದೆ. [CS50.TV] [ಲಾಫ್ಟರ್] ಸರಿ. ಒಂದು ತೆಗೆದುಕೊಳ್ಳಬಹುದು. ಇಲ್ಲಿ ನಾವು ಹೋಗಿ. ನಾವು ಒಂದು ಕಡತದ ಯೋಚನೆ ಮಾಡಿದರೆ - >> ಓಹ್, ನಿರೀಕ್ಷಿಸಿ. ಕ್ಷಮಿಸಿ. [ಲಾಫ್ಟರ್] ಸರಿ. ಹಲೋ. ನಾವು ಒಂದು ಕಡತದ ಯೋಚನೆ ಮಾಡಿದರೆ - ನೀವು ಒಂದು ಕಡತದ ಯೋಚನೆ ಮಾಡಿದರೆ - ಸರಿ. ನೀವು ಸಿದ್ಧರಾದಾಗ ಹೇಳಿ. ಓಹ್, ಮಹಾನ್. ಒಂದು ಟೆಲಿಪ್ರೊಂಪ್ಟೆರನ್ನು ಓದುವಲ್ಲಿ ಆದರೂ ಕಾಣಿಸಬಹುದು - ಯಾವುದೇ. ನನ್ನ ಕೆಟ್ಟ.