2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
🌟🌟Auctor protocollum:ephemers__
🌟🌟Columnae pertinentes;C lingua
4. Munera quae imperium file aperiendi et claudendi
2. Sequentialis lectio et scriptura de files
3. Random legere et scribere de files
4. Determinatio finis documenti Lectio
Cum programmata scribemus, notitias in variabilibus saepe recondimus. Si progressio exituum et memoria repetetur, haec notitia amittetur. Estne igitur via nobis constanter hanc datam servandi ut notitia adhuc exstent, cum iterum aperiatur progressio? Respondetur quod sic. Quid hoc potest facere est;File res。
Rationis notitia in externis machinis outputare debet, et ab externis machinis inputare necesse est. Pro diversis artibus, input et output modi sunt diversae. Ut operationes nostras in variis initibus et outputis cogitationibus faciliores reddamus, notionem "amnis" valde abstractam habemus. In lingua C, input et output operationes in lima, screens, claviaturae, etc. omnia per "flumina" fiunt. In genere, si notitias scribere vel notitias legere velimus, necesse est ut rivum aperiamus.
Cum programmatis linguae C inceperit, defaltam facittria fluminaApertum est iam nobis;
stdin--Standard input stream, input a tincidunt in pluribus.
stdout--Standard output stream, monitor output in pluribus.
stderr--Standard error stream, output to the monitor in pluribus.
Quia hi tres rivi per defaltam aperti sunt, operationes input et output utentes functiones sicut scanf et printf directe praestare possumus.
Hi tres rivi genera habent.File monstratorem (FILE*) .Cum lima operationes perficimus, praeterimusTabella variabilis monstratorem obliqua tabella cum ea coniunctam invenire potest.。
Secundum quomodo data ordinatur, fasciculi notitia vocanturtext limaor *binarii file . Data forma binaria in memoriam reponitur;Si output ad tabulam repositionis externam sine conversione, estbinarii file。
Si in ASCII codice in repositione externa condi oportet, ante repono converti debet.A lima in ASCII forma condita esttext lima。
Quomodo fragmen lima in notitia conditur?
Characteres semper in ASCII reponuntur, et notitia numeralis in forma ASCII vel binaria condi possunt. Exempli gratia, si sit integer 10000, si in forma ASCII codici ad orbem ponatur, 5 bytes in disco obtinebit (unum byte pro singulis characteribus), dum si in binaria forma sit output, illud bytes tantum occupant IV in disco.
Post hanc cognitionem praerequisitam intellegendam, ad punctum perveniamus - fasciculi aperiendi et imagini claudendi. C lingua duo munera praebet, quae relativo imagini aperiendi et claudendi responsales sunt. Prototypa sunt haec:
file aperire:FILE * fopen * * * * * * * const .
Claudere tabella:int fclose ( FILE * stream ) ;
Munus fopen habet duos parametros;Primus modulus exprimitur in forma chordaefile nomen, secundus est tabella parametriApertum modumRepraesentatum per filum .Cum hoc munere utentes, necesse est nos creare afile indicator variabilis Accipere, cum tabella non aperitur, monstratorem nullum reddit. Quoad modos agendos, hic sunt sequentia;
Apertum modum | significatio | Si certa file non est |
"R" (solum legere) |
Ut intret data, aperi ens textum lima
| Nullum indicatorum refert |
"W" (solum scribere) |
Ad output data, textum file aperire
| Novam file |
"a" (append) | Addere notitia ad finem textus lima | Novam file |
"R" (legere solum) | Data intrare, aperire file binarii | Nullum indicatorum refert |
"Wb" (solum scribere) | Ad output data, aperi file binarii | Novam file |
"ab" (append) | Addere notitia lima usque ad finem binarii | Novam file |
"R" (legere et scribere) | Nam legere et scribere, textum aperi | Nullum indicatorum refert |
"w+" (legere et scribere) | Nam legere et scribere, novum textum fasciculum creare | Novam file |
"a+" (legere et scribere) | Aperi limam et lege et scribe in fine tabellae | Novam file |
"Rb+" (legere et scribere) | Aperi file binarii ad legendum et scribendum | Nullum indicatorum refert |
"Wb+" (legere et scribere)
| Nam legere et scribere, novum fasciculum binarium creare | Novam file |
"ab+" (legere et scribere)
| Aperi fasciculus binarius et lege et scribe in fine tabella | Novam file |
Ad munus fclose, modulus eius est tabella monstratrix, quae tabellam monstrante tabella monstrante claudere solet.
Deinde conamur limam aperire et claudere:
- #include <stdio.h>
-
- int main()
- {
- FILE* pf = fopen("test.txt", "w");
- if (pf == NULL)//文件打开失败则退出程序
- {
- perror("fopen");
- return 0;
- }
- printf("文件打开成功n");
- fclose(pf);
- pf = NULL;//避免出现野指针,及时制空
- return 0;
- }
Perspici potest quod, cum modus "w" sit aperiendi, limam "test.txt" nominatam in via manifestare potest.
Deinde plura munera proLegere aut scribere notitia ad lima。
Munus nomen | Officium | Applicatur to |
fgetc | Mores initus functionis | Omnes input fluenta |
fputc | mores output munus | Omnes rivi output |
fgets | Textus linea initus functionis | Omnes input fluenta |
fputs | Textus linea output function | Omnes rivi output |
fscanf** | Forma initus functionis | Omnes input fluenta |
fprintf | Forma output munus | Omnes rivi output |
fread | Binarii initus | File initus stream |
fwrite | Binarii output | File output stream |
Deinde conamur utifscanf**etfprintfofficium:
Primus modulus harum duarum functionum fasciculus monstrator est, qui notitias fasciculi legere et scribere solebat. Parametri subsequentes iidem sunt ac functiones scanf et printf.
- #include <stdio.h>
-
- int main()
- {
- FILE* pf = fopen("test.txt", "w");//要写入数据,以写的形式打开文件
- if (pf == NULL)
- {
- perror("fopen");
- return 0;
- }
- fprintf(pf, "123456");//向文件中写入数据
- fclose(pf);
- pf = NULL;
- return 0;
- }
Ut videre potes, notitia tabella scripta est. Deinde utimur fscanf functioni ad imprimendum tabellam datam velum:
- #include <stdio.h>
-
- int main()
- {
- char str[20] = { 0 };
- FILE* pf = fopen("test.txt", "r");//要读取数据,以读的形式打开文件
- if (pf == NULL)
- {
- perror("fopen");
- return 0;
- }
- fscanf(pf, "%s", str);//读取数据到str当中
- printf(str);
- fclose(pf);
- pf = NULL;
- return 0;
- }
Munus fseek munus estEx loco et offset tabella monstratorempositionefile indicatorum . Prototypum eius tale est:
int fseek (FILE * stream, long int offset, int origin);
Primus eius modulus est monstror tabella, secundus parameter est cinguli relativus ad statum positis, tertius modulus est positio statuta.
C lingua definit tresMacroelige unum ex his ut tertium modulum;
SEEK_SET: initium tabellae positio
SEEK_CUR: Praesens tabellae positio monstratorem
SEEK_END: finis documenti
Post tabella monstratorem locare, legere vel scribere apud certum locum tabellae possumus.
munus ftell adhibetur ad reditusDe offset tabellae regulae ad initium positionis . Munus exemplar:
long int ftell (FILE * stream);
rewind munus adhibetur adRevertere locum tabellae monstratorem ad principium tabellae . Munus suum exemplar:
void rewind (FILE * stream);
1. For*text lima, primum uti possumusfgetcMunus ansas per characteres in tabella donec EOF legitur, indicansFile Lectio terminos。
2. For*binarii file,UtimurfreadMunus suum valorem reditus determinat:Num minus quam ipse numerus legendus est? .Si minus est quamLectio finium.
Ad duos casus supra, tabellaIn fine Lectio, pergere possumus iudicareQuod file Lectio finita . Duo munera inducere:feofetferror。
feofMunus propterDeterminare finem documenti Lectioratioutrum vel nonFinis documenti offendit . Prototypum eius tale est:
int feof (FILE * stream);
Si tabella est exLegere ad finem documentiExpleto lectione, EOF redditur;
ferrorMunus propterDeterminare finem documenti Lectioratioutrum vel nonAn EGO / O error occurrit . Prototypum hoc est:
int ferror ( FILE * stream ) ;
Si tabella est exAn EGO / O error occurritPeracta lectione, redditur non nulla valoris;
Deinde conamur scribere particulam codicis ut iudicet finem documenti lectionis:
- #include <stdio.h>
-
- int main()
- {
- int c = 0;
- FILE* fp = fopen("test.txt", "r");
- if (fp == NULL)
- {
- perror("fopen");
- return 0;
- }
- while ((c = fgetc(fp)) != EOF)//返回EOF则读取结束
- {
- putchar(c);
- }
- //判断读取结束的原因
- if (ferror(fp))
- puts("I/O错误n");
- else if (feof(fp))
- puts("文件读取结束n");
- fclose(fp);
- fp = NULL;
- return 0;
- }
Hodie de operationibus fasciculi didicimus, quomodo ad aperiendas et claudendas lima, data vel scribenda notitias de scriniis, functiones lima indicibus componendis, et finem lectionis documenti determinare. Si bonum censes dictum blogger, quaeso parvam similem relinquere et tibi gratias pro auxilio tuo