Форум программистов, компьютерный форум CyberForum.ru

ios::app,ios::ate,различия - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Нахождение НОД и НОК двух чисел http://www.cyberforum.ru/cpp-beginners/thread278028.html
Вот код программы на Паскале нужно переделать на С++ { Рекурсивные алгоритмы: нахождения НОД и НОК двух чисел } var a,b:longint; function NOD(x,y:longint):longint; { фукнция поиска наиб. общ. делителя } begin if x<>0 then NOD:=NOD(y mod x,x) else NOD:=y; end; function NOK(x,y:longint):longint; { фукнция поиска наим. общ. кратного }
C++ Очереди в С++ Подскажите пожалуйста, как при создании списка из целых чисел исключить все элементы <1 с помощью очереди ? http://www.cyberforum.ru/cpp-beginners/thread278024.html
C++ Программа для распознавания регистра
Имеется программа для распознавания регистра символов. Она должна спросить пользователя ввести символ, потом оценить его и вывести результат работы. Потом спросить пользователя хочет ли он продолжить работу с этой прогой или нет. Проблемы у меня возникают при выполнении последнего алгоритма. Не могу заставить прогу завершаться. Как у меня в ней ошибки ? #include<iostream> #include<ctype.h>...
Возведения числа в целую положительную и отрицательную степень C++
Запрограммируйте алгоритм возведения числа в целую положительную и отрицательную степень. Пользователь вводит данные с клавиатуры. Программа выполняет вычисление и предлагает ввести следующую пару чисел. Отказом от продолжения служит возведение 0 в 0-ю степень. При возведении в степень используйте рекурсивный алгоритм. Примените механизм исключений для обработки возможных ошибок при вводе...
C++ Найти в первой строчки матрицы элементы равные 1 и вывести номер элемента http://www.cyberforum.ru/cpp-beginners/thread277987.html
Что надо исправить?? for ( i = 0; i < N; i ++ ) for ( j = 0; j < M; j ++ ) { if (T==1) printf("%d" ,T); }
C++ запись в файл здравствуйте) у меня символы не правильно записываются в файл ......... fstream file1,file2; file1.open("1.txt",ifstream::in); file2.open("2.txt"); подробнее

Показать сообщение отдельно
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,131
17.04.2011, 14:46     ios::app,ios::ate,различия
Есть такая формулировка:
Модификатор ate сохраняет содержимое файла, если он существует, и усатанавливает указатель в конец файла при открытии; app - то же самое, с той лишь разницей, что устанавливает указатель в конец файла перед каждой записью в файл (т.е. записывать можно только в конец файла).
Отсюда Как записать текст в файл, не меняя его содержимого?

Посмотрим другую формулировку:
ios_base::app append output
ios_base::ate seek to EOF when opened
Отсюда http://www.cppreference.com/wiki/io/io_flags
ate ставит указатель в EOF(конец файла).
Но что все таки делает app? Англ. я не знаю, поэтому перевести корректно не могу.

Теперь рассмотрим часть кода:
C++
1
2
3
4
5
6
7
8
9
...
fstream p(FILENAME, ios::in | ios::out | ios::ate);
if(!p)
{
     p.open(FILENAME, ios::app);
     p.close();
     p.open(FILENAME, ios::in | ios::out | ios::ate);
}
...
В 3 строке программа пытается открыть файл.
Если файла нет, то переходим к 6 строке.
В 6 строке создается файл. Если убрать из третьей строки ios::app, то файл не создается!
В 8 строке открываем файл и ставим указатель в конец файла.

Так все таки, что делает app? Создает файл, если его нет? Или что?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru