Программирование >>  Расширенная версия языка c++ 

1 ... 90 91 92 [ 93 ] 94 95 96 ... 227


Обратите внимание, что для считывания символов из потока cin в программе используется функция get(). Это предотвращает игнорирование начальных пробелов.

3. В следующей программе для записи строки и числа типа double в файл test используется функция

linclude <iostream> #include <fstreain> #include <cstring> usin espace std;

int main ()

ofstream ios:: out I ios :; binary) ;

if(lout) {

cou Файл открыть невозыожно\п ; .

return 1;

..... 1 - . x,\rf

double num - 100.45;

char str[] = Это проверка ;

int main(int argc, char *argv[])

char ch;

if[argc!=2) {

cout Запись; <имя файяа>\п ;

return 1;

ofstream ] , ios::out I ios::binary); if lout) {

couc-: Файл открыть невозможно\п ;

return 1; - . ,c ,;

. - .

cou Для остановки введите символ $\n ; do {

cout

cin.get(ch); i- ; -.

out.put(ch);

} whil № = $) ; . . -

out. close () ; .

return 0;



out.write ( (char *) snujti, sizeof (double) ) ; , r out.write(str, strlen(str));

out.close 0;

return 0;


Приведение uinn ar ) при вызове функции ite(} необходимо, если буфер вывода не определен как символьный массив. Поскольку в С++ осуществляется строгий контроль типов, указатель на один тип не преобразуется автоматически в указатель на другой тип.

4. В следующей программе для считывания из файла, созданного в программе примера 3, используется функция read():

ttinclude <iostream> ttinclude <fstream> usin space std;

int main () {

ifstream in( test , ios::in ios : :binary);

if(!in) ! I . -

cou.--: Файл открыть невозможно \n ; return 1;

- }

double num; char str[80];

in.read((char *) snum, sizeof (double)); in.read(str, 15) ; str[14] = VO;

cou nu < str;

in.closeO; , .

return 0;

Как и в программе из предыдущего примера, приведение типов внутри функции rea(l() необходимо, поскольку в С++ указатель одного типа автоматически не преобразуется в указатель другого типа.



1.,*-

ifStream in( test , ios::in iosr:binary); if(!in) {

cou << Файл открыть невоэможноХп ;

return 1;

in.read((char *) Snums, sizeof(nums));

int i;

fo i<4;

cou [i] ;

cout Xn; .

cou nt 0 символов считаноХп ; in.close 0 ;

return 0;

-, .:

1. Измените ответы на упражнения 1 и 3 раздела 9.2 так, чтобы в них использовались фуньщии getO, 11UH/: read() и/или \vrite(> (Используйте эти фуньщии там, где они, по вашему мнению, принесут наибольшую отдачу.)


5. В следующей программе сначала массив шЫе записывается в файл, а затем считывается обратно. Кроме того, отображается число считаннхх символов.

Демонстрация работы функции gcount О #include <iostream> ttinclude <fstrec4n> using namespace std;

int mainO t

ofstream out ( test , ios::out ios: :binary) ;

ifdout) {

cou Файл открыть невозможно\n ;

return 1 ;

double = (1.1, 2.2, 3.3, 4.4);

out.write((char *) nums, sizeof(ntms)); . . , ь .

out. clos); - .



1 ... 90 91 92 [ 93 ] 94 95 96 ... 227

© 2006 - 2025 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки.
Яндекс.Метрика