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

Чтение из txt файла - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Печать предложения в обратном порядке http://www.cyberforum.ru/cpp-beginners/thread836161.html
Дано предложение в файле. Нужно вывести его в обратном порядке. Ребят, тут много тем с похожими вопросами, но того что надо не нашел, подскажите как записать некоторое предложение из файла в какой то массив? Добавлено через 49 минут ...
C++ разработка рекурсивных функций, не возвращающих значений ( рекурсивную функцию для нахождения n-го члена и суммы n первых членов прогрессии) помогите пожалуйста разобраться с задачей: Даны первый член и разность арифметической прогрессии. Написать рекурсивную функцию для нахождения n-го члена и суммы n первых членов прогрессии. http://www.cyberforum.ru/cpp-beginners/thread836157.html
C++ Какой код у тире?
Которое –. '\n' - другой символ.
Даны натуральное , символьный файл и текстовый файл . Файл содержит 30 слов , каждое из которых будем называть ключевым C++
Добрый день, помогите пожалуйста сделать вот такую программу. Даны натуральное k , символьный файл f и текстовый файл f1 . Файл f содержит 30 слов , каждое из которых будем называть ключевым. Сформировать файл g , который содержит строки файла f1 , циклически сдвинутые так, чтобы каждое ключевое слово, входящее в строку, начиналось с k-й позиции. Строки, содержащие ключевых слов, в...
C++ Обнаружить в заданном тексте http://www.cyberforum.ru/cpp-beginners/thread836123.html
Обнаружить в заданном тексте слова, содержащие более 3-х гласных букв, сначала распечатать их, а потом заменить гласные буквы символом "-" и снова распечатать их.
C++ В матрице найти максимальный элемент среди элементов (используя подпрограмму) Дана квадратная матрица А размерностью 5. Расположить элементы каждой строки заданной матрицы по убыванию. В полученной матрице найти максимальный элемент среди элементов, расположенных на главной диагонали используя подпрограмму. подробнее

Показать сообщение отдельно
myxasa
14 / 14 / 1
Регистрация: 31.05.2012
Сообщений: 210
Записей в блоге: 2
12.04.2013, 22:03     Чтение из txt файла
Рассмотрим, как применять средства форматирования для создания форматированного отчета о наличии товаров.

Допустим, у нас есть подготовленный в текстовом редакторе файл с перечнем товаров, в котором одна запись занимает 2 строки: на первой строке*– название товара, на второй*— количество и цена.
Авторучки перьевые
1031 257.50
Авторучки шариковые
2143 6.50
Лампы настольные люминесцентные белые
300 350
Папки для бумаг
10677 12.67
Пусть файл с именем tovar.dat записан на диске.


Требуется записать новый файл-ведомость, который потом можно будет выводить на принтер. В одной строке файла 5 полей:

Номер по порядку, ширина поля*— 3 символа.
Название товара*— 40 символов.
Цена*— 7 символов, два знака после запятой.
Количество*— 6 символов, целое число.
Стоимость = количество цена*— 12 символов, 2 знака после запятой.

Поля разделяются символом | (вертикальная черта). Название нужно выравнивать влево, а если оно занимает больше 40 символов, то его надо обрезать.
Числа нужно выравнивать вправо, причем числа, обозначающие деньги, выводить с фиксированной точкой и двумя знаками после запятой. Десятичная система установлена по умолчанию, а ширину поля приходится задавать для каждого поля (для каждой операции вывода) заново. После всех записей нужно вывести итоговую сумму. Записывать файл будем тоже на диск

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
28
29
30
31
32
33
#include <fstream>
#include <iomanip>
#include <string>
using namespace std;
int main()
{    struct Tovar
    {    string name;                    // наименование товара
        unsigned int HowMany;            // количество
        double Price;                    // цена
    };
    Tovar tmp;
    ifstream inf(“a:/tovar.dat");        // исходный файл
    ofstream to (“a:/summa.dat");        // файл-ведомость
int i = 1;    double Summa = 0;
// чтение первой записи
    getline(inf, tmp.name); 
    inf >> tmp.HowMany; inf >> tmp.Price; inf.ignore();
while(!inf.eof())                        // пока не конец файла
{    to << right << setw(3) << i++ << '|'; 
     to << left << setw(40) << tmp.name.substr(0,40) << '|';
     to.precision(2);
     Summa+= tmp.Price*tmp.HowMany;
     to << right << fixed 
       << setw(6) <<  tmp.HowMany << '|' 
        << setw(7) <<  tmp.Price << '|'
        << setw(12) << tmp.Price*tmp.HowMany << '|'
        << endl;
    getline(inf, tmp.name);
    inf >> tmp.HowMany; inf >> tmp.Price; inf.ignore();
};
    to << setw(72) << Summa << endl;
    return EXIT_SUCCESS;
}
Миниатюры
Чтение из txt файла  
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru