Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 40, средняя оценка - 4.98
Ksan
27 / 27 / 0
Регистрация: 02.11.2010
Сообщений: 370
#1

fprintf - C++

03.11.2010, 16:11. Просмотров 5220. Ответов 8
Метки нет (Все метки)

fprintf
Вопрос - данная ф-ция перезаписывает весь файл?
То есть сначала очищает, а после записывает или же добавляет запись к концу?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.11.2010, 16:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос fprintf (C++):

fwrite, fprintf - C++
Подскажите, что указывается в скобках у этих функций? 1 параметр файл, а что за конст_чар? Обьясните чайнику:(

fprintf scanf - C++
Помогите с кодом Хочу сделать считывание с файла и вывод в файл output input #include <stdio.h> #include <io.h> #include...

Аналог функции fprintf в с++ - C++
Здравствуйте! Я долго искал в гугле аналог функции fprintf в с++, но так и не нашел и решил написать на форуме. Существует ли в с++ аналог...

FILE*,fopen,fprintf - C++
Закомментируйте код пожалуйста , если можно поподробней и где неправильно поправьте;> int main(void) { FILE* fp;/// создается...

fprintf ошибка сегментирования - C++
Вот такой код #include <stdio.h> #include <stdlib.h> #include <iostream> using namespace std; typedef struct { ...

Вывод float через fprintf - C++
Ребят, подскажите как надо прописать fprintf, чтобы вывести у числа float только целую часть. Заранее благодарен.

8
KpeHDeJIb
56 / 56 / 3
Регистрация: 31.10.2010
Сообщений: 103
03.11.2010, 16:19 #2
Цитата Сообщение от Ksan Посмотреть сообщение
fprintf
Вопрос - данная ф-ция перезаписывает весь файл?
То есть сначала очищает, а после записывает или же добавляет запись к концу?
Нет, эта функция пишет в то место файла куда установлен указатель на запись. Сама функция не следит за тем что и куда пишется, она просто пишет по установленному для открытого файла смещению и все.
0
Mayonez
380 / 272 / 21
Регистрация: 26.12.2009
Сообщений: 875
03.11.2010, 18:33 #3
Цитата Сообщение от Ksan Посмотреть сообщение
данная ф-ция перезаписывает весь файл?
это зависит от того, какие параметры будут переданы в функцию fopen()
0
KpeHDeJIb
56 / 56 / 3
Регистрация: 31.10.2010
Сообщений: 103
03.11.2010, 19:34 #4
Цитата Сообщение от Mayonez Посмотреть сообщение
это зависит от того, какие параметры будут переданы в функцию fopen()
Есть только одно различие, открыт файл как текстовой или бинарный, этот режим влияет на конвертацию символов конца строки при записи в файл и чтении из файла. Кстати это один из хороших вопросов по программированию на Си, чем отличается бинарный режим открытия файла от текстового
0
silent_1991
Эксперт С++
4986 / 3043 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
03.11.2010, 19:43 #5
KpeHDeJIb, а как же, скажем, отличие параметров "w" (перезапись) и "a" (дозапись).
0
KpeHDeJIb
56 / 56 / 3
Регистрация: 31.10.2010
Сообщений: 103
03.11.2010, 19:50 #6
Цитата Сообщение от silent_1991 Посмотреть сообщение
KpeHDeJIb, а как же, скажем, отличие параметров "w" (перезапись) и "a" (дозапись).
Давайте обратимся к ману тогда:
"r" Open a file for reading. The file must exist.
"w" Create an empty file for writing. If a file with the same name already exists its content is erased and the file is treated as a new empty file.
"a" Append to a file. Writing operations append data at the end of the file. The file is created if it does not exist.
"r+" Open a file for update both reading and writing. The file must exist.
"w+" Create an empty file for both reading and writing. If a file with the same name already exists its content is erased and the file is treated as a new empty file.
"a+" Open a file for reading and appending. All writing operations are performed at the end of the file, protecting the previous content to be overwritten. You can reposition (fseek, rewind) the internal pointer to anywhere in the file for reading, but writing operations will move it back to the end of file. The file is created if it does not exist.

Т.е. уже на момент открытия файла fopen определяется способ записи, к самому fprintf это никакого отношения не имеет.
0
silent_1991
Эксперт С++
4986 / 3043 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
03.11.2010, 20:01 #7
А я с этим не спорю. Просто вы на фразу Mayonezа "это зависит от того, какие параметры будут переданы в функцию fopen()" (которая эквивалентна вашей "на момент открытия файла fopen определяется способ записи"), сказали, что отличие только в том, будет он открыт как текстовый или как бинарный...
0
KpeHDeJIb
56 / 56 / 3
Регистрация: 31.10.2010
Сообщений: 103
03.11.2010, 20:06 #8
Цитата Сообщение от silent_1991 Посмотреть сообщение
сказали, что отличие только в том, будет он открыт как текстовый или как бинарный...
Для fprintf да, отличие только в том в каком тестовом или бинарном режиме открыт файл. на остальное ему пофиг, честно слово, он пишет туда куда показывает позиция открытого файлового дескриптора. Даже не так, он не сразу пишет, т.к. эта функция относится к буферизированному вводу-выводу, но это уже другая песня.
0
silent_1991
Эксперт С++
4986 / 3043 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
03.11.2010, 20:11 #9
Я вас понял, и источник спора понял - термины))) Всё понятно, что fprintf пофиг, ей сказали "копай" - она копает, а откуда, от дерева или от забора - её это не..ёт. Но мне кажется, для ТСа было важно не то, как работает функция эфпринтэф внутри себя, а то, как всё это дело работает в совокупности. Ну и последовал ответ, что как файл в итоге будет выглядеть - зависит от параметров fopen.
0
03.11.2010, 20:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.11.2010, 20:11
Привет! Вот еще темы с ответами:

fprintf не переводит на новую строку - C++
fprintf(fz,"%7s|%7s|%7s|%7s|%7s|\n ",Ndv1,Kd1,Mvx1,Nk1,Urash1,Nper1); не хочет переводить на новую строчку не могу понять почему

cin cout и fscan fprintf - C++
Здравствуйте! Помогите понять чем они отличаются. учили в школе както через фсканф и фпринтф хотел разобраться с cin и сout. в fscanf ...

Запись массива чисел в файл fprintf - C++
Нужно массив записать в файл так, чтобы открыв файл были видны числа. Числа из массива могут быть и отрицательные тоже. Но приведенный ниже...

Ошибка при выводе файла с помощью fprintf - C++
FILE *F=fopen("1_1.txt","w"); std::string st="0123"; for(int i=0;i<st.length();i++) { fprintf(F,"%c",st); } fclose(F); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru