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

Отчет - 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 Результат должен быть: 114678 aint 156. Слова в результате разделены только одним пробелом. Вот часть программы (пропуск пробелов и определение границ одного слова). знаю, что сравнить две цифры в char можно так: if...
C++ Добавить в конец первого файла содержимое второго помогите разобраться кто сможет! тут такое дело ошибки есть! задание: Даны два текстовых файла. Добавить в конец первого файла содержимое второго файла. #include "stdafx.h" #include <iostream> #include <windows.h> #include <iomanip> #include <stdio.h> using namespace std; подробнее

Показать сообщение отдельно
Dioxis
1 / 1 / 0
Регистрация: 04.03.2009
Сообщений: 83
14.04.2010, 18:10     Отчет
Помогите выловить ошибку. Суть: сопоставить с данными в тексте и вывести информацию по товару. Текст программы:

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
Выводит имя товара и цену нормально, а имя магазина: МММММММММ
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 13:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru