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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Sydney
0 / 0 / 0
Регистрация: 22.05.2011
Сообщений: 5
#1

Файлы - C++

23.05.2011, 16:02. Просмотров 510. Ответов 4
Метки нет (Все метки)

Помогите с этой программой в С++ плз, дело в том что перед практикой преподаватель не успел до конца рассказать как использовать файлы с их свойствами, поэтому я не могу разобраться в этой проге, которую нам дали, получилось что то типа самообучения. Помогите если есть желание плз.

Ввести з клавіатури дані про музейні експонати - назва, дата надходження, місце знаходження. Записати дані в файл (якщо файл вже існує-додати в кінець). Вивести на екран дані про експонати вказаного місця знаходження. Для вказаного експонату змінити місце знаходження.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.05.2011, 16:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Файлы (C++):

Заголовочные файлы .h, файлы исходного когда c/c++ и установление связи между ними - C++
Всем добрый вечер!) Относительно недавно стал изучать c/c++, хочу полюбопытствовать ,так как появился вопрос. Почему при объявлении...

Работа в Visual Studio 2015 - как добавить файлы исходного кода и заголовочные файлы? - C++
Приветствую всех! Столкнулся с тем, что решая задачи по книге Лафоре про графику, не смог добавить файлы .h и .cpp, скачав их с одной из...

Зачем нужно добавлять файлы в файлы исходного кода - C++
Зачем нужно добавлять файлы в файлы исходного кода (кроме main.cpp)? И как вызвать из main.cpp другой файл?

Заголовочные файлы и файлы cpp - C++
Со временем сложилось представление что при написании программ стоит разделять МЕТА данные и данные, но для лучшего понимания своих...

Раздельная компиляция: что помещать в заголовочные файлы, а что в файлы реализации (исходники)? - C++
Здравствуйте, я учусь пользоваться Visual Studio.Пишу программу, в которой создаются и разрушаются объекты, определенного пользователем...

нужно переделать код (из Файлы текстовые (FILE*) в Файлы текстовые (потоки)) - C++
вот задание для программы: 6. Задан текстовый файл input.txt. Требуется определить строки этого файла, содержащие максимальную по длине...

4
diagon
Higher
1932 / 1198 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
23.05.2011, 16:07 #2
Цитата Сообщение от Sydney Посмотреть сообщение
Ввести з клавіатури дані про музейні експонати - назва, дата надходження, місце знаходження. Записати дані в файл (якщо файл вже існує-додати в кінець). Вивести на екран дані про експонати вказаного місця знаходження. Для вказаного експонату змінити місце знаходження.
Щито?
Не все знают украинский, не все умеют пользоваться гугл транслейтом, и вообще, официальным языком форума является русский=\
0
Sydney
0 / 0 / 0
Регистрация: 22.05.2011
Сообщений: 5
23.05.2011, 17:06  [ТС] #3
Извините.

Ввести с клавиатуры данные про музейные экспонаты - название, дата доставки, место обнаружения. Записать данные в файл ( если файл уже существует - добавить в конец ). Вывести на экран данные про экспонаты по указанному месту нахождения. Изменить место нахождения указанного экспоната. Как дополнительно могут потребовать меню.
0
diagon
Higher
1932 / 1198 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
23.05.2011, 18:39 #4
Как-то так.
Просто сделать не получилось, и писал скорее для себя... В общем вот, вроде все прокоментил
Если будут вопросы по коду-задавай
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
#include <iostream>
#include <fstream>
#include <sstream> //STL
struct exhibition{   //структура "экспонат"
    std::string name,date,place;  //имя, дата, место
};
int i; //i=0, если объявлять ее в глобальном пространстве
int main(){
    const int n=100;  //максимальный размер массива
    exhibition ex,array[n];   //структура, массив структур
    std::string place;   //STL-контейнер, место
    std::cout << "Enter exhibitions\n"; //"Введите экспонаты"
    for (;;){ //вечный цикл
        std::cin >> ex.name;
        if (ex.name=="end") break; //если первое введенное слово="end", то прерываем цикл(заканчиваем ввод)
        std::cin >> ex.date >> ex.place; //считываем дату и место
        array[i++]=ex;  //загоняем считанную структур в массив структур и постфиксно увеличиваем индекс i
    }
    size_t array_size=i; //тут будет лежать размер массива
    for(;;){//еще один вечный цикл
        std::cout << "Enter place\n";  //"введите место"
        std::cin >> place; //считываем "место"
        if (place=="end") break; //если введено "end", прерываем цикл(ввод места)
        bool isfound=false; //логическая переменная
        for ( i=0;i < array_size; i++) //пробегаемся по массиву
            if (array[i].place==place) { //если если элемент массива с индексом i равен введенному месту
                isfound=true; //присваиваем булевой переменной true
                break; //и прерываем цикл
            }
        if (!isfound)   //если экспонат с таким именем не найден
            std::cout << "Exhibition not found\n"; //"экспонат не найден"
        else{ //а если найден
        std::cout << "name: " << array[i].name << " date: " << array[i].date << " place: " << array[i].place << std::endl; //выводим информацию о экспонате
        std::cout << "\nEnter new place:\n"; //Введите новое место
        std::cin >> place; //считываем место
        array[i].place=place; //меняем место экспоната
        }
    }
    std::fstream out;   //файл
    out.open ("test.txt",std::fstream::out | std::fstream::app); // связываем out с нужным файлом
    for (i=0;i < array_size; i++) 
        out << array[i].name << ' ' << array[i].date << ' ' << array[i].place << std::endl; //и записываем все это в файл=)
    return 0; //happy end
}
Добавлено через 5 минут
Пример использования в консоли линукса
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
diagon@shadeware:~$ g++ main.cpp -o exhibition
diagon@shadeware:~$ ./exhibition
Enter exhibitions
exhibition1 21.05.2010 Paris
exhibition2 17:00 Moscow
exhibition3 date_not_found NamelessCity
end
Enter place
Moscow
name: exhibition2 date: 17:00 place: Moscow
 
Enter new place:
Krasnoyarsk
Enter place
Paris
name: exhibition1 date: 21.05.2010 place: Paris
 
Enter new place:
London
Enter place
end
diagon@shadeware:~$ cat ./test.txt
exhibition1 21.05.2010 London
exhibition2 17:00 Krasnoyarsk
exhibition3 date_not_found NamelessCity
diagon@shadeware:~$
1
Sydney
0 / 0 / 0
Регистрация: 22.05.2011
Сообщений: 5
23.05.2011, 19:20  [ТС] #5
Спасибо большое, пошел разбираться.
0
23.05.2011, 19:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.05.2011, 19:20
Привет! Вот еще темы с ответами:

Файлы.Текстовые файлы - C++
Считая t текстовым файлом (файлом типа text), ответить на следующие вопросы: А)Кроме текстовых файлов,файлы какиъ еще типов могут...

С++ файлы - C++
Скажите, а как в C++ работать с типизированными файлами.

файлы в c++ - C++
есть текстовый файл. нужно создать другой текстовый файл и переписать, определенное количество символов. файл читать в произвольном...

файлы в C - C++
Пожалуйста помогите написать программу, которая создает 5 текстовых файлов и обменивает данные между ними в след. последовательности из 1 в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.