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

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

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

fprintf - C++

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

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

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 только целую часть. Заранее благодарен.

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
KpeHDeJIb
56 / 56 / 3
Регистрация: 31.10.2010
Сообщений: 103
03.11.2010, 16:19     fprintf #2
Цитата Сообщение от Ksan Посмотреть сообщение
fprintf
Вопрос - данная ф-ция перезаписывает весь файл?
То есть сначала очищает, а после записывает или же добавляет запись к концу?
Нет, эта функция пишет в то место файла куда установлен указатель на запись. Сама функция не следит за тем что и куда пишется, она просто пишет по установленному для открытого файла смещению и все.
Mayonez
380 / 272 / 21
Регистрация: 26.12.2009
Сообщений: 875
03.11.2010, 18:33     fprintf #3
Цитата Сообщение от Ksan Посмотреть сообщение
данная ф-ция перезаписывает весь файл?
это зависит от того, какие параметры будут переданы в функцию fopen()
KpeHDeJIb
56 / 56 / 3
Регистрация: 31.10.2010
Сообщений: 103
03.11.2010, 19:34     fprintf #4
Цитата Сообщение от Mayonez Посмотреть сообщение
это зависит от того, какие параметры будут переданы в функцию fopen()
Есть только одно различие, открыт файл как текстовой или бинарный, этот режим влияет на конвертацию символов конца строки при записи в файл и чтении из файла. Кстати это один из хороших вопросов по программированию на Си, чем отличается бинарный режим открытия файла от текстового
silent_1991
Эксперт С++
4958 / 3034 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
03.11.2010, 19:43     fprintf #5
KpeHDeJIb, а как же, скажем, отличие параметров "w" (перезапись) и "a" (дозапись).
KpeHDeJIb
56 / 56 / 3
Регистрация: 31.10.2010
Сообщений: 103
03.11.2010, 19:50     fprintf #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 это никакого отношения не имеет.
silent_1991
Эксперт С++
4958 / 3034 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
03.11.2010, 20:01     fprintf #7
А я с этим не спорю. Просто вы на фразу Mayonezа "это зависит от того, какие параметры будут переданы в функцию fopen()" (которая эквивалентна вашей "на момент открытия файла fopen определяется способ записи"), сказали, что отличие только в том, будет он открыт как текстовый или как бинарный...
KpeHDeJIb
56 / 56 / 3
Регистрация: 31.10.2010
Сообщений: 103
03.11.2010, 20:06     fprintf #8
Цитата Сообщение от silent_1991 Посмотреть сообщение
сказали, что отличие только в том, будет он открыт как текстовый или как бинарный...
Для fprintf да, отличие только в том в каком тестовом или бинарном режиме открыт файл. на остальное ему пофиг, честно слово, он пишет туда куда показывает позиция открытого файлового дескриптора. Даже не так, он не сразу пишет, т.к. эта функция относится к буферизированному вводу-выводу, но это уже другая песня.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.11.2010, 20:11     fprintf
Еще ссылки по теме:

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); ...

fprintf не может записать значения типа чар в файл - C++
функция принтф не может записать значения типа чар в текстовой файл int wordsGenerator(char name) { //Объявляем// char...

Error C2039: fprintf: не является членом "`global namespace'" - C++
просто не понимаю откуда берется такая ошибка? вроде все правильно пишу... Заголовки функций #pragma once #include <string> ...


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

Или воспользуйтесь поиском по форуму:
silent_1991
Эксперт С++
4958 / 3034 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
03.11.2010, 20:11     fprintf #9
Я вас понял, и источник спора понял - термины))) Всё понятно, что fprintf пофиг, ей сказали "копай" - она копает, а откуда, от дерева или от забора - её это не..ёт. Но мне кажется, для ТСа было важно не то, как работает функция эфпринтэф внутри себя, а то, как всё это дело работает в совокупности. Ну и последовал ответ, что как файл в итоге будет выглядеть - зависит от параметров fopen.
Yandex
Объявления
03.11.2010, 20:11     fprintf
Ответ Создать тему
Опции темы

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