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

Отчет - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ написать универсальную функцию для вычисления выражений http://www.cyberforum.ru/cpp-beginners/thread116732.html
написать универсальную функцию для вычисления выражений(См ниже). В main() обеспечить вызов этой функции и отображение результатов вычисления выражений.
C++ Последовательность Помогите написать прогу пожалуйста: Дана последовательность, имеющая от 2 до 50 слов, в каждом из которых от 1 до 8 рядковых латинских букв, между соседними словами не меньше одного пропуска, за... http://www.cyberforum.ru/cpp-beginners/thread116715.html
Вывести вертикальную гистограмму длин слов введенного текста. C++
Здравствуйте... Помогите пожалуйста сделать эту программу... 2.Вывести вертикальную гистограмму длин слов введенного текста. Добавлено через 15 часов 39 минут срочно
C++ Найти сумму тех элементов, которые кратны заданному К
Помогите с задачей. В массив A занесены натуральные числа. Найти сумму тех элементов, которые кратны данному К.
C++ Сортировка цифр в строке типа char http://www.cyberforum.ru/cpp-beginners/thread116664.html
Здравствуйте! Помогите, пожалуйста, дописать программу. Прогррамма должна сортировать буквы или цифры во введенной строке. Например строка: 781641 aitn 165 Результат должен...
C++ Добавить в конец первого файла содержимое второго помогите разобраться кто сможет! тут такое дело ошибки есть! задание: Даны два текстовых файла. Добавить в конец первого файла содержимое второго файла. #include "stdafx.h" #include <iostream>... подробнее

Показать сообщение отдельно
Dioxis
1 / 1 / 0
Регистрация: 04.03.2009
Сообщений: 83

Отчет - C++

14.04.2010, 18:10. Просмотров 425. Ответов 2
Метки (Все метки)

Помогите выловить ошибку. Суть: сопоставить с данными в тексте и вывести информацию по товару. Текст программы:

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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# include <fstream.h>
# include <string.h>
# include <stdlib.h>
# include <windows.h>
 
 
 
int main ()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    const int 
        l_name=30, 
        l_mag=15, 
        l_cost=10, 
        l_buf=l_name + l_mag + l_cost;  
    struct Price                                                
    {
        
        char name[l_name+1];
        char mag[l_mag+1];
        float cost;
    };
 
    const int l_price = 100;
    Price total[l_price];                  
    char buf[l_buf+1];              
    char name[l_name+1];                
    ifstream fin("price.txt", ios::in | ios::nocreate); 
 
        if(!fin)                               
        {
            cout <<"Ошибка открытия файла" << endl;
            return 1;
        }
    
    int i=0;                        
    while (!fin.eof())
    { 
        fin.getline(buf,l_buf);
        if (i > l_price)
        {
            cout << "Слишком длинный файл"<< endl;
            return 1;
        }
        strncpy(total[i].name, buf, l_name);
        //strncpy(total[i].mag, buf, l_mag);
        total[i].name[l_name] = '\0';
        total[i].name[l_mag] = '\0';;
        total[i].cost = atof(&buf[l_name + l_mag]);
        i++;
    }
    
    int n_record = i, n_man = 0;                                 
    float mean_pay = 0;
 
    while (true)                                        
    {
        cout << "Введите название товара или end:";
        cin.getline (name,30);                          
        if (strcmp(name, "end") == 0)   break;                   
        bool not_found = true;                              
        for (i=0; i<n_record; i++)                                
        {
            if (strstr(total[i].name, name))                    
                if (total[i].name[strlen(name)] == ' ')           
                {
                    strcpy(name, total[i].name);
                    //OemToChar(total[i].mag,total[i].mag);                        
        cout << name << total[i].mag << "  " << total[i].cost << endl;
 
                    not_found = false;
                }
        }
    if (not_found)   
        cout <<"Нет подходящего овара"<< endl;
    }
    
return 0;
}
Текст price.txt:(Может парсер порезать)
Хлеб Петровский 3.40
Молоко ЦУМ 2.50
Сладкая вода Левобережный 5.20
Конфеты Кишеня 8.60
Сыр Петровский 45.00
Мясо Левобережный 52.50
Колбаса ЦУМ 46.30
Птица Петровский 32.00
Выводит имя товара и цену нормально, а имя магазина: МММММММММ
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.