Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.10.2012, 21:38   #1
dar666
 
Регистрация: 11.10.2012
Сообщений: 5
По умолчанию как создать файл

как создать файл вот такой структуры
Код C++
{
struct date{
short число;
char месяц[15];
short год;
struct{
short часы;
short минуты;
};
};

Последний раз редактировалось dar666; 11.10.2012 в 21:55.
dar666 вне форума Ответить с цитированием
Старый 12.10.2012, 08:45   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Открыть файл и записать туда несколько таких структур, нЕ?
p51x вне форума Ответить с цитированием
Старый 12.10.2012, 20:29   #3
dar666
 
Регистрация: 11.10.2012
Сообщений: 5
По умолчанию

нужно написать программу которая формирует такой файл, а я не понимаю как и какие команды нужно использовать для этого, а в учебнике который я читала такая ересь написана про создание файлов, что, я думаю, даже сам автор не понял о чем написал
dar666 вне форума Ответить с цитированием
Старый 12.10.2012, 22:04   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Цитата:
а в учебнике который я читала такая ересь написана про создание файлов, что, я думаю, даже сам автор не понял о чем написал
Автора подскажите... очень интересно?
p51x вне форума Ответить с цитированием
Старый 12.10.2012, 22:36   #5
dar666
 
Регистрация: 11.10.2012
Сообщений: 5
По умолчанию

не помню, удалила, как только убедилась в его абсолютной бесполезности
dar666 вне форума Ответить с цитированием
Старый 12.10.2012, 22:48   #6
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Ничего страшного, тут http://programmersforum.ru/showthread.php?t=31602 их много
eoln вне форума Ответить с цитированием
Старый 12.10.2012, 22:48   #7
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

Допустим у нас в файле "input.txt" записано:

input.txt
Цитата:
Hello!
Следующая показательная программка читает из файла "input.txt" слово и записывает его в файл "output.txt". Если файлы открыть не удалось, то выводятся соответствующие сообщения на экран.

Дальше показать или сами попробуете? Если есть вопросы, то задавайте. Пишите всё, что непонятно. Завтра разберём.

Код:
#include <fstream>
#include <iostream>
using namespace std;

int main () {
    // Input file
    ifstream qfpInputFile;
    char* caInputFileName = "input.txt";

    // Open the input file
    qfpInputFile.open(caInputFileName);

    // Was input file open?
    try {
        if (!qfpInputFile.is_open()) {
            throw 1;
        }
    }
    catch (int iErrorCode) {
        if (iErrorCode == 1) {
            cerr << "Error: cannot open file \"" << caInputFileName << "\"" << endl;
            return 1;
        }
    }

    // Output file
    ofstream qfpOutputFile;
    char* caOutputFileName = "output.txt";

    // Open the output file
    qfpOutputFile.open(caOutputFileName);

    // Was output file open?
    try {
        if (!qfpOutputFile.is_open()) {
            throw 2;
        }
    }
    catch (int iErrorCode) {
        if (iErrorCode == 2) {
            cerr << "Error: cannot open file \"" << caOutputFileName << "\"" << endl;
            return 1;
        }
    }

    // Read input data
    const int kiSizeOfString = 100;
    char caInputStr[kiSizeOfString];
    qfpInputFile >> caInputStr;

    // Write output data
    qfpOutputFile << caInputStr << endl;

    // Close the files
    qfpInputFile.close();
    qfpOutputFile.close();
    return 0;
}

Последний раз редактировалось 8Observer8; 12.10.2012 в 22:51.
8Observer8 вне форума Ответить с цитированием
Старый 12.10.2012, 22:59   #8
dar666
 
Регистрация: 11.10.2012
Сообщений: 5
По умолчанию

спасибо, буду пробовать
dar666 вне форума Ответить с цитированием
Старый 14.10.2012, 11:42   #9
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

Структура в С++ это тоже самое, что и класс. За исключением того, что без явного указания уровня доступа к членам в структурах эти члены - private, а в классах - public. В с++ вместо структур нужно использовать классы. Нужно создать массив объектов класса и записывать туда данные из файла с входными данными.

Всегда нужно проверять по максимуму корректность входных данных. И сообщать пользователю, что не так. Так как пользователь может случайно ошибиться и программа может повести себя непредсказуемо.

Составляем для себя файл с ожидаемыми результатами:

expectation.txt
Цитата:
15 - Day
11 - Month
1880 - Year
2 - Hour
17 - Minute

// Correct data
15
11
1880
2
17

Error 0003: day must be in the range [1; 31]
32
11
1880
2
17

Error 0004: month must be in the range [1; 12]
15
13
1880
2
17

Error 0005: year must be positive
15
11
-1880
2
17

Error 0006: year must not be zerro
15
11
0
2
17

Error 0007: hour must be in the range [0; 23]
15
11
1880
24
17

Error 0008: minute must be in the range [0; 59]
15
11
1880
2
60

Error 0009: illegal input data
15
11
wwwwww
2
17
Копируем данные из файла с ожидаемыми результатами в файл с входными данными:

input.txt
Цитата:
15
11
1880
2
17

32
11
1880
2
17

15
13
1880
2
17

15
11
-1880
2
17

15
11
0
2
17

15
11
1880
24
17

15
11
1880
2
60

15
11
wwwwww
2
17
Программа (файлы прикрепил к сообщению) просто читает данные из входного файла и выводит их в выходной файл и в случае наличия некорректных данных сообщает пользователю.

Запускаем программу и смотрим выходной файл:

output.txt
Цитата:
15
11
1880
2
17
Error 003: day must be in the range [1; 31]
Error 004: month must be in the range [1; 12]
Error 005: year must be positive
Error 006: year must not be zerro
Error 007: hour must be in the range [0; 23]
Error 008: minute must be in the range [0; 59]
Error 009: illegal input data
Как мы видим, выходные данные совпали с ожидаемым результатом, значит программа сработала, как и ожидалось.
Вложения
Тип файла: rar dates.rar (2.3 Кб, 6 просмотров)

Последний раз редактировалось 8Observer8; 14.10.2012 в 11:44.
8Observer8 вне форума Ответить с цитированием
Старый 14.10.2012, 17:42   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

8Observer8, а с чего Вы взяли, что автору темы нужен текстовый файл?
по-моему, он же в исходном сообщении недвусмысленно спросил про то, "как создать файл вот такой структуры".
Ему нужен БИНАРНЫЙ (двоичный) файл заданной структуры.
я не знаю, конечно, С/C++, но, думаю, что ему нужно что-то такое
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как создать внешний файл kostello Общие вопросы C/C++ 2 29.08.2009 23:26
как создать файл с ресурсами? PONKA Общие вопросы Delphi 5 25.04.2008 21:08
Как создать типизированный файл Kosya4ok Паскаль, Turbo Pascal, PascalABC.NET 3 16.12.2007 09:29
Как создать бат файл? svarog45u Помощь студентам 2 18.11.2007 13:20
Как создать файл NTX MegaMax БД в Delphi 1 05.11.2007 10:09