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

Ввод вывод из/в файлы(и еще пару вопросов) - C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
VladSharikov
 Аватар для VladSharikov
22 / 22 / 1
Регистрация: 02.12.2010
Сообщений: 824
18.04.2011, 00:22     Ввод вывод из/в файлы(и еще пару вопросов) #1
Знаю парочку способов ввести/вывести данные из файла не знаю какой из них какой!
В общем я отпишу мысли, а вы скажите верны ли они, у преподавателя(почему не пойму?!) ума не хватило спросить, потому пишу сюда.

Для .txt подходит:
fprintf - форматный ввод в файл
fscanf - собственно вывод форматный

fputc - запись одного символа в файл
fscanf - считывание одного симв из файла

fgets - считывание строки из файла
fputs - запись строки в файл
1. Все вышеописанное ТОЛЬКО для .txt файлов. Так?

ДЛЯ .dat подходит только :
fread -считать
fwrite - записать
2. Верно? Или в дат файл можно записывать еще и через другие функции?

Вообще fwrite/fread вроде бы "байтовое"("битовое") считывание/запись в файл, а все остальное форматная запись. Так?

3. Что возвращает ftell и как можно узнать на какой позиции стоит сейчас "курсор" в файле, чтобы потом через fseek попасть в эту позицию.
Компилятор VS 2010 говорит, прототип ftell такой long ftell(.... ), а fseek(прототип int fseek(.., long _Offset,..)). Как я понимаю, нужно запомнить позицию ftell и потом использовать ее в fseek. Так? Если так (да и если не так, то как?) дайте пожалуйста пример простенький. Хелп программы не помог ничем.

Если что еще напишу !

Добавлено через 14 минут
Уже дополнение

Как поставить указатель на конец файла? Есть задача... при определенных условиях данные надо записать в конец файла(через функцию)
Пример:
C++
1
2
3
4
5
6
7
8
array_proc(int *bufArr, size) {
     FILE *file; fopen_s(&file, "out.dat", "wb"); 
     int i = 0, buffer;
     if(i%2 == 0) {
          buffer = bufArr[i];
          fwrite(&buffer, sizeof(int), 1, file);
     }
     fclose(file);
И еще... если открыть файл в режиме ab(добавление в конец) будет ли работать? 2 и 3 раз понятно будет... А в первый раз, когда файл пустой?
В любом случае, как поставить указатель на конец файла?

Добавлено через 11 часов 48 минут
Ап. Почти разобрался но хотелось бы ваше мнение услышать
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.04.2011, 00:22     Ввод вывод из/в файлы(и еще пару вопросов)
Посмотрите здесь:

C++ Сортировка по алфавиту и еще несколько вопросов по С++
C++ Ifstream и пару вопросов
Пару вопросов по двумерным массивам C++
вывод и ввод значение через файлы C++
Цикл while, пару несложных вопросов C++
Пару вопросов насчёт ввода массива. C++
C++ Пару вопросов насчёт блок-схемы (функция)
C++ Маленькая кучках глупых вопросов (отвечайте по проще, я еще ничего не знаю ;)
Файловый ввод-вывод.Текстовые файлы C++
Подсчитать количество нулей на побочной диагонали массива и еще пару задач C++
Работа с файлами, ввод и вывод, многостроковые файлы C++
C++ Еще раз про setw: не определяется, хотя все файлы импортированы

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CEBEP
105 / 105 / 9
Регистрация: 21.03.2010
Сообщений: 437
18.04.2011, 04:06     Ввод вывод из/в файлы(и еще пару вопросов) #2
a и ab создают файл если его нет и дописывают в конец если есть. если необходимо и читать и записывать в бинарнике то подойдёт rb+. ftell возвращает количество байтов между началом файла и курсором
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
18.04.2011, 04:07     Ввод вывод из/в файлы(и еще пару вопросов) #3
Функция fseek принимает три аргумента: первый - указатель на файл, второй - насколько "прыгаем", третий - откуда. Третий аргумент может иметь три значения: SEEK_SET - отсчет идет от начала файла, SEEK_CUR - от текущей позиции, SEEK_END - от конца файла. Соотвественно, чтобы установить указатель в конец файла, делаем следующий вызов fseek(file, 0, SEEK_END);
ftell возвращает текущее положение указателя.
Choopa
 Аватар для Choopa
17 / 17 / 0
Регистрация: 03.04.2011
Сообщений: 89
18.04.2011, 05:57     Ввод вывод из/в файлы(и еще пару вопросов) #4
#include <fstream>

int main()
{
string a; //объявление строки
char s[256]; //объявление массив символов
ifstream inf; //создоание объекта для работы с файлом
inf.open("c:\\text.txt"); //открытие файла
inf>>a; //чтение до первого пробела или enter
inf.getline(s,sizeof(s)); //чтение строки целиком



ofstream out; //для записифайла
out.open();
out<<a<<endl; //выводит

}
//---------------------------------------------------------------------------
Yandex
Объявления
18.04.2011, 05:57     Ввод вывод из/в файлы(и еще пару вопросов)
Ответ Создать тему
Опции темы

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