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

Переписать компоненты файла f в файл g так, чтобы в файле g числа шли в следующем порядке: - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Указатели http://www.cyberforum.ru/cpp-beginners/thread986344.html
Доброй ночи! Вот столкнулась с такой проблемой, нужно из одной функции в другую перенести переменную number через указатель, что у меня никак не хочет получаться, осталась надежда только на знатоков Оставила пустыми места идентификации функций в связи с тем, что там, я так поняла, надо помещать указатели, а у меня с ними вот такая беда void input_struct() { int number; int...
C++ Ф-ия month всегда возвращает true, хотя так не должно быть Ф-ия month всегда возвращает true, хотя так не должно быть. В этой ф-ии я должна либо ввести полностью месяц, либо три первых буквы. Эсли все правильно возвращаться 1, эсли нет 0. Друзья, помогите скорей, пожалуйста! main #include "flower.h" #include <fstream> #include <sstream> #include <string> #include <algorithm> http://www.cyberforum.ru/cpp-beginners/thread986333.html
Profiler C++
В Матлабе есть такая штука, профайлер называется. Она выдает результаты времени выполнения операций в течении всей программы. А есть ли некий аналог в VS?
C++ Чтение из файла в структуру
Здравствуйте, имеется функция чтения из файла в структуру и последующего вывода на экран: void ReadFileFromStrucure (int StructSize,char *FileName,StructEmployee *UsrStruct) { ifstream labfile (FileName); int iter = 0; while(labfile.read((char*)&UsrStruct,sizeof(UsrStruct))); labfile.close(); } void OutputStructEmployee (int StructSize, char *FileName, StructEmployee...
C++ Выделение памяти для массива http://www.cyberforum.ru/cpp-beginners/thread986321.html
Пишу такой код: int main() { int* arr1 = new int; } Всё норм. Теперь такой:
C++ Не пойму почему не компилируется код взят с книги Либерти ? #include <iostream> using namespace std; const int DefaultSize = 10; // обычный класс Animal для // создания массива животных class Animal { public: Animal(int); подробнее

Показать сообщение отдельно
reisal78
 Аватар для reisal78
603 / 516 / 119
Регистрация: 28.04.2013
Сообщений: 1,451
24.10.2013, 08:23     Переписать компоненты файла f в файл g так, чтобы в файле g числа шли в следующем порядке:
Р. Лафоре. ООП.
ЗАПИСЬ ДАННЫХ
Следующая программа демонстрирует запись символа, целого числа, числа типа double и двух объектов типа string в дисковый файл. Вывод на экран не производится. Приведем листинг программы FORMATO.

Листинг 12.2. Программа FORMATO
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// formato.cpp
// Форматированный вывод в файл с использованием <<
#include <fstream>        // для файлового ввода/вывода
#include <iostream>
#include <string>
using namespace std;
 
int main()
{
  char ch = 'x';
  int j = 77;
  double  d = 6.02;
  string str1 = "Kafka";  // строки без
  string str2 = "Proust"; // пробелов
 
  ofstream outfile("fdata.txt"); // создать объект ofstream
 
  outfile << ch           // вставить (записать) данные
        << j
        << ' '            // пробелы между числами
        << d
        << str1
        << ' '            // пробелы между строками
        << str2;
  cout << "Файл записан\n";
  return 0;
}
Здесь мы определили объект outfile в качестве компонента класса ofstream. В то же время мы инициализировали его файлом FDATA.TXT. Инициализация резервирует для дискового файла с данным именем различные ресурсы и получает доступ (или открывает файл) к нему. Если файл не существует, он создается. Если файл уже существует, он переписывается — новые данные в нем заменяют старые. Объект outfile ведет себя подобно cout из предыдущих программ, поэтому можно использовать операцию вставки (<<) для вывода переменных любого из стандартных типов в файл. Это так замечательно работает потому, что оператор вставки перегружен в классе ostream, который является родительским для ofstream.
Когда программа завершается, объект outfile вызывает свой деструктор, который закрывает файл, так что нам не приходится делать это явным образом.
Есть несколько потенциальных проблем с форматированным выводом в дисковые файлы. Во-первых, надо разделять числа (77 и 6.02, например) нечисловыми символами. Поскольку они хранятся в виде последовательности символов, а не в виде полей фиксированной длины, это единственный шанс узнать при извлечении, где кончается одно и начинается другое число. Во-вторых, между строками должны быть разделители — по тем же причинам. Это подразумевает, что внутри строки не может быть пробелов. В этом примере для разделения данных мы использовали пробел в обоих случаях. Радует то, что символы не нуждаются в разделителях, хотя они и являются данными фиксированной длины.
Посмотреть на результаты работы программы FORMATO можно, открыв файл FDATA.TXT с помощью программы WORDPAD или команды DOS TYPE.
ЧТЕНИЕ ДАННЫХ
Прочитать файл, созданный программой FORMATO, можно с использованием объекта типа ifstream, инициализированного именем файла. Файл автоматически открывается при создании объекта. Затем данные из него можно считать с помощью оператора извлечения (>>).
Приведем листинг программы FORMATI, которая считывает данные из файла FDATA.TXT.
Листинг 12.3. Программа FORMATI
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// formati.cpp
// форматированное чтение из файла с помощью >>
#include <fstream>              // для файлового ввода/вывода
#include <iostream>
#include <string>
using namespace std;
 
int main()
{
  char ch;
  int j;
  double  d;
  string str1;
  string str2;
 
  ifstream infile("fdata.txt"); // создать объект ifstream 
                                // извлечь (прочесть) из него данные
  infile >> ch >> j >> d >> str1 >> str2;
 
  cout << ch << endl            // вывести данные
      << j << endl
      << d << endl
      << str1 << endl
      << str2 << endl;
  return 0;
}
Объект типа ifstream, который мы назвали infile, действует примерно так же, как cin в предыдущих программах. Если мы корректно вставляли данные в файл, то извлечь их не составит никаких проблем. Мы просто сохраняем их в соответствующих переменных и выводим на экран.
Раз вы дошли до изучения файлов, полагаю проблем "перетасовать" данные проблем не возникнет?

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