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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Использование функций записи в файл http://www.cyberforum.ru/cpp-beginners/thread308425.html
Здравствуйте! Есть глобальная переменная int date_year int date_Month; Надо дозаписать в файл, данные этих двоих переменных, полученных через cin, под шапкой таблицы в одну строку. void Cap_table() { ofstream f("reminder.txt"); f << "---------------------------------------------------------" << endl; f << "| Date | Executive | My plan |" << endl; f...
C++ Конструкторы, Деструкторы. вывод на экран Здравствуйте уважаемые форумчане! Из книги взял пример кода по конструкторам. Вот код: #include <cstdlib> #include <iostream> class MyClass { public: int x; http://www.cyberforum.ru/cpp-beginners/thread308423.html
Программирование на С C++
если это важно работаем с программой Borland ++++++++++++++++++++++ 1. Дайте определение строки. Чем строка отличается от символьного массива? Приведите пример. 2. Какие значения будут выведены в результате работы программы? void main() {float m={{2,4,6,8},{1,3,5,7},{9,10,11,12}} ,*d=m; printf("%d %d %d\n", sizeof(d), sizeof(m), sizeof(m));}
C++ Ввод из файла.
дана программа. в ней нужно ввести данные из файла. при выводе их на экран выводит не той кодировкой. помогите поменять. вот код программы: //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include <iostream.h> #include <stdio.h> #include <conio.h> #include <string.h>
C++ Структуры http://www.cyberforum.ru/cpp-beginners/thread308413.html
В библиотеке создается база данных, в которой хранятся сведения об имеющихся в библиотеке книгах. Эта база данных представляет собой файл структур следующего вида: struct books { char наименование_книги; char автор ; char редактор ; char издательство ; int год_издани
C++ Файлы Подскажите пожалуйста! В магазине имеются различные товары, причем каждому товару в качестве названия присвоен целочисленный код. Для контроля за наличием товара создаетс ЛИТЕРНЫЙ файл, состоящий из записей, описывающих товары - по одной записи на каждый товар. Запись имеет следующий вид (второй солбец - форматные спецификации строки с форматами преобразований типов - второй параметр функции... подробнее

Показать сообщение отдельно
Kravch
0 / 0 / 0
Регистрация: 21.12.2010
Сообщений: 7
31.05.2011, 11:10  [ТС]     Чтение из файла
Так не работает. Вероятно, там 2 символа \n и \r (как я понимаю признак конца строки и перевода каретки, если забирать 8 символов, то в массив кладётся 10 и 0 из ASCII). Оставил вариант с чтением 8 символов. Забирает всё правильно.

Появилась другая проблема. Если при выборе ввести в меню любую букву, то меню уходит в бесконечный цикл, проскакивая "cin >> c;". Вероятно, нужно перегрузить cin, только не понятно как это сделать.
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
int menu() {
 
    int i, j, c = 0;
    char x[6];
 
    while(1) {
        cout << "\n";
            cout << "1. Добавить элемент в таблицу \n";
            cout << "2. Найти элемент в таблице \n";
            cout << "3. Удалить элемент из таблицы \n";
            cout << "4. Очистить таблицу \n\n";
            cout << "5. Выйти \n\n";
            cout << "Выберите команду: ";
            cin >> c; // Этот cin не всегда срабатывает
        
        switch(c) {
            case 1: 
                cout << "Введите ключ вида цццАцц : ";
                for(i = 0; i < 6; i++) {
                    cin >> x[i];
                }
                
                read();
                add_element(x);
                cout << "\n\nЭлемент добавлен" << endl;
                break;
 
            case 2: 
                cout << "Введите ключ вида цццАцц : ";
                for(i = 0; i < 6; i++) {
                    cin >> x[i];
                }
                
                read();
                c = hash_search(x);
                if (c == -1) cout << "Строчка не найдена!!!";
                else {
                    cout << "\n\nНайденный элемент : ";
                    for (i = 0; i < 6; i++) {
                        cout << table[c][i];
                    }
                }
                cout << "\n\n";
                break;
 
            case 3: 
                cout << "Введите ключ вида цццАцц : ";
                for(i = 0; i < 6; i++) {
                    cin >> x[i];
                }
                
                read();
                del(x);
                cout << "\n\nЭлемент удалён" << endl;
                break;
 
            case '\n':
                break;
 
            case 4: 
                cout << "\n\nВы уверены что хотите очистить хеш? (Введите 42 если да)" << endl;
                cin >> c;
 
                if(c == 42)
                    hash_clean();
                break;
 
            case 5: 
                system("pause");
                return 0;
        }
    }
}
зы: мб кому-то будет интересно. проблема с отображением 2х элементов подряд в дебаггере связана с его особенностями. Для удобного представления элементов массива типа char он выводит его элементы в заголовке как строку. И не найдя признак конца строки после 1 элемента, выводит и следующий, т.к. в памяти они лежат друг за другом. На запись элементов в массиве и их использование в программе это никак не влияет.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru