File handling: fix russian description and add translation (#33988)
This commit is contained in:
committed by
Randell Dawson
parent
8bf9bd319e
commit
7ce8046792
@ -1,12 +1,12 @@
|
|||||||
---
|
---
|
||||||
title: File Handling
|
title: File Handling
|
||||||
localeTitle: Обработка файлов
|
localeTitle: Работа с файлами
|
||||||
---
|
---
|
||||||
## Обработка файлов
|
## Работа с файлами
|
||||||
|
|
||||||
### Введение
|
### Введение
|
||||||
|
|
||||||
Если вы уже написали программу C `helloworld` , вы уже сделали файл IO в C! Поздравляем! : Тада:
|
Если вы уже написали программу `helloworld`, вы уже использовали файловый ввод/вывод (input/output, IO) в C! Поздравляем! :tada:
|
||||||
|
|
||||||
```c
|
```c
|
||||||
/* A simple hello world in C. */
|
/* A simple hello world in C. */
|
||||||
@ -23,35 +23,35 @@ localeTitle: Обработка файлов
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
Обработка файлов - важная часть программиста. В языке C мы используем указатель структуры типа файла для объявления файла
|
Работа с файлами - один из важнейших аспектов программирования. В языке C для объявления файла используется указатель на структуру типа FILE.
|
||||||
|
|
||||||
```c
|
```c
|
||||||
FILE *fp;
|
FILE *fp;
|
||||||
```
|
```
|
||||||
|
|
||||||
C предоставляет ряд встроенных функций для выполнения основной операции с файлами
|
C предоставляет ряд встроенных функций для выполнения основных операций с файлами
|
||||||
|
|
||||||
**fopen ()** **\-** **создать новый файл или открыть существующий файл**
|
**fopen() - создать новый файл или открыть существующий файл**
|
||||||
|
|
||||||
**fclose ()** **\-** **закрыть файл**
|
**fclose() - закрыть файл**
|
||||||
|
|
||||||
**getc ()** **\-** **считывает символ из файла**
|
**getc() - считывает символ из файла**
|
||||||
|
|
||||||
**putc ()** **\-** **записывает символ в файл**
|
**putc() - записывает символ в файл**
|
||||||
|
|
||||||
**fscanf ()** **\-** **считывает набор данных из файла**
|
**fscanf() - считывает набор данных из файла**
|
||||||
|
|
||||||
**fprintf ()** **\-** **записывает набор данных в файл**
|
**fprintf - записывает набор данных в файл**
|
||||||
|
|
||||||
**getw ()** **\-** **считывает целое число из файла**
|
**getw() - считывает целое число из файла**
|
||||||
|
|
||||||
**putw ()** **\-** **записывает целое число в файл**
|
**putw() - записывает целое число в файл**
|
||||||
|
|
||||||
**fseek ()** **\-** **установить позицию для желаемой точки**
|
**fseek() - установить позицию в желаемую точку**
|
||||||
|
|
||||||
**ftell ()** **\-** **показывает текущую позицию в файле**
|
**ftell() - показывает текущую позицию в файле**
|
||||||
|
|
||||||
**rewind ()** **\-** **установить позицию в начальную точку**
|
**rewind() - установить позицию в начальную точку**
|
||||||
|
|
||||||
### Открытие файла
|
### Открытие файла
|
||||||
|
|
||||||
@ -59,45 +59,54 @@ C предоставляет ряд встроенных функций для
|
|||||||
|
|
||||||
`c fp = fopen(const char filename,const char mode);`
|
`c fp = fopen(const char filename,const char mode);`
|
||||||
|
|
||||||
В C существует много режимов открытия файла **r** **\-** **открыть файл в режиме чтения**
|
В C существует множество режимов открытия файла:
|
||||||
|
|
||||||
**w** **\-** **открывает или создает текстовый файл в режиме записи**
|
**r - открывает файл в режиме чтения**
|
||||||
|
|
||||||
**a** **\-** **открывает файл в режиме добавления**
|
**w - открывает файл в режиме записи (удаляя его содержимое) или создает его в случае отсутствия**
|
||||||
|
|
||||||
**r +** **\-** **открывает файл в режиме чтения и записи**
|
**a - открывает файл в режиме добавления в конец или создает его в случае отсутствия***
|
||||||
|
|
||||||
**a +** **\-** **открывает файл в режиме чтения и записи**
|
**r+ - открывает файл в режиме чтения и записи**
|
||||||
|
|
||||||
**w +** **\-** **открывает файл в режиме чтения и записи**
|
**a+ - открывает файл в режиме чтения и записи (добавляет в случае существования)**
|
||||||
|
|
||||||
|
**w+ - открывает файл в режиме чтения и записи (удаляя его содержимое)**
|
||||||
|
|
||||||
Вот пример чтения и записи данных в файл
|
Вот пример чтения и записи данных в файл
|
||||||
|
|
||||||
\`\` \`с #включают
|
```c
|
||||||
|
#include<stdio.h>
|
||||||
|
#include<conio.h>
|
||||||
|
|
||||||
# включают
|
int main()
|
||||||
|
{
|
||||||
|
FILE *fp;
|
||||||
|
char ch;
|
||||||
|
fp = fopen("hello.txt", "w");
|
||||||
|
printf("Enter data");
|
||||||
|
while( (ch = getchar()) != EOF) {
|
||||||
|
putc(ch,fp);
|
||||||
|
}
|
||||||
|
fclose(fp);
|
||||||
|
fp = fopen("hello.txt", "r");
|
||||||
|
|
||||||
главный() { FILE \* fp; char ch; fp = fopen ("hello.txt", "w"); printf («Введите данные»); while ((ch = getchar ())! = EOF) { putc (ч, FP); } fclose (FP); fp = fopen ("hello.txt", "r");
|
while( (ch = getc(fp)! = EOF)
|
||||||
|
printf("%c",ch);
|
||||||
|
|
||||||
while ((ch = getc (fp)! = EOF) Е ( "% С", ч);
|
fclose(fp);
|
||||||
|
}
|
||||||
fclose (FP); }
|
|
||||||
```
|
```
|
||||||
Now you might be thinking, "this justs prints text to my screen. How is this file IO?"
|
Должно быть, вы думаете: "Это всего лишь выводит текст на экран. С какой стати это файловый ввод/вывод"? Ответ кажется поначалу неочевидным и требует некоторых знаний о системе UNIX. С точки зрения UNIX все является файлом, в том смысле, что вы можете читать из него и записывать в него. Это значит, что принтер может быть отождествлен с файлом, так как все, что вы делаете с принтером - пишете в него. Также полезно думать об этих файлах как о потоках, поскольку, как будет показано позже, их можно перенаправлять с помощью оболочки.
|
||||||
The answer isn't obvious at first, and needs some understanding about the UNIX system.
|
|
||||||
Under a UNIX system, everything is treated as a file, meaning you can read and write from it.
|
|
||||||
This means that your printer can be abstracted as a file since all you do with a printer is write with it.
|
|
||||||
It is also useful to think of these files as streams, since as you'll see later, you can redirect them with the shell.
|
|
||||||
|
|
||||||
So how does this relate to `helloworld` and file IO?
|
Как все это связано с `helloworld` и файловым вводом/выводом?
|
||||||
|
|
||||||
When you call `printf`, you are really just writing to a special file called `stdout`, short for __standard output__.
|
Когда вы вызываете `printf`, на самом деле происходит запись в специальный файл `stdout`, сокращение от __standard output (стандартный вывод)__.
|
||||||
`stdout` represents, well, the standard output as decided by your shell, which is usually the terminal.
|
`stdout` представляет собой, что неудивительно, средство стандартного вывода по выбору вашей оболочки, роль которой чаще всего играет терминал. Это объясняет почему он выводит символы на экран.
|
||||||
This explains why it printed to your screen.
|
|
||||||
|
|
||||||
There are two other streams (ie files) that are available to you with effort, `stdin` and `stderr`.
|
Существуют два других потока (т.е. файла) с которыми тоже при желании можно работать, `stdin` и `stderr`.
|
||||||
`stdin` represents the __standard input__, which your shell usually attaches to the keyboard.
|
`stdin` представляет собой __standard input (стандартный ввод)__, которую оболочка обычно привязывает к клавиатуре.
|
||||||
`stderr` represents the __standard error__ output, which your shell usually attaches to the terminal.
|
`stderr` представляет собой __standard error (стандартный вывод ошибок)__ , который оболочка обычно привязывает к терминалу.
|
||||||
|
|
||||||
### Rudimentary File IO, or How I Learnt to Lay Pipes
|
### Rudimentary File IO, or How I Learnt to Lay Pipes
|
||||||
Enough theory, let's get down to business by writing some code!
|
Enough theory, let's get down to business by writing some code!
|
||||||
|
Reference in New Issue
Block a user