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

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

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

Запись в файл - C++

29.05.2012, 02:04. Просмотров 424. Ответов 4
Метки нет (Все метки)

Короче, такая тема: надо курсовую сделать. Тема сделать программу для разработки и выполнения тестов (1 курс, если чё)
В принципе половину сделал, но на самом основном ступор: не знаю как сделать запись заданий теста в файл, чтобы потом можно было прочесть.
Если бы была стандартная библиотека для работы с ини-файлами, как в делфи, проблем бы не было, сделал бы с их помощью.

Идея была заносить задания в массив структур. Всё занёс, получилось... кинул SaveDialog, чтоб с его помощью пользователь мог выбирать, как обозвать файл вопросов, и где его сохранять. Но выбивает ошибку.. Короче вот мой быдло-код, помогите плиз, а то послезавтра сдавать надо уже
в .h:
C++
1
2
3
4
5
6
7
8
9
10
11
12
struct Task
{
    int       QN;               // номер вопроса
    String    QTask;            // текст вопроса
    int       QNum;             // кол-во вариантов
    String    QAns[5];          // ответы в массиве
    int       QRAns;            // правильный ответ
 
};
 
    Task quest [32];        // массив структур моих
    int TN;         // колво вопросов
в .cpp:
C++
1
2
3
4
5
6
7
8
    /* ненужные строки удалил, для экономии места*/
        wchar_t* FName;
        FName = dlgSave1->FileName.c_str();
 
        fstream F;
        F.open(FName, ios::binary);
// для проверки работоспособности, сохраняю чисто одну численную константу 0 элемента массива
        F.write (IntToStr(quest[0].QN).c_str(),sizeof(quest[0].QN));
и вот в последней строчке выдаёт ошибку:
[BCC32 Error] main__.cpp(58): E2034 Cannot convert 'wchar_t *' to 'const char *'
[BCC32 Error] main__.cpp(58): E2342 Type mismatch in parameter '_Str' (wanted 'const char *', got 'wchar_t *')
КАК конвертировать?? постоянно что-то не нравится ему(((

Помогите, плиз, а то итак уже третий день сижу мучаю это
Ну или как по-другому можно такое сделать? Только по-подробнее, а то я ещё слабоват в Срр..

P.S. если чё, пользуюсь Embarcadero RadStudio XE2
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.05.2012, 02:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Запись в файл (C++):

запись в файл. не создается файл - C++
#include <graphics.h> // vkljy4it' opisanie grafi4eskix fynkcij Ñ/Ñ++ Borland'ah #include<stdio.h> #include <conio.h> // opisanie...

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

Запись в файл - C++
Задание: Определить максимальный элемент массива, записанного в файле. Результат записать в новый файл. Пишу такой код, однако...

Запись в файл - C++
Мне нужно, чтобы данная программа вывела ответ в екселевский файл. Но почему то не выходит. Файл создал прям на диске "С" с названием...

Запись в файл - C++
Доброго времени суток. Начал изучать работу с файлами, и малость запутался. Ищу по разным источникам, и везде команды предлагается...

Запись в файл - C++
Вот программа: #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <locale.h> int i; int fact (int...

4
insolent
826 / 344 / 15
Регистрация: 30.01.2009
Сообщений: 1,204
29.05.2012, 19:20 #2
Подставь dlgSave1->FileName.c_str() прям в F.open:
C++
1
F.open(dlgSave1->FileName.c_str(), ios::binary);
1
AndreyCarter
0 / 0 / 0
Регистрация: 29.05.2012
Сообщений: 8
30.05.2012, 02:15  [ТС] #3
Попробовал, не помогло(
0
Avazart
Нарушитель
Эксперт С++
7232 / 5404 / 293
Регистрация: 10.12.2010
Сообщений: 23,952
Записей в блоге: 17
30.05.2012, 02:19 #4
C++
1
2
3
4
AnsiString FName;
FName = AnsiString(dlgSave1->FileName.c_str());
fstream F;
F.open(FName.c_str(), ios::binary);
Cannot convert 'UnicodeString' to 'wchar_t *
RAD Studio XE2 - первые впечатления
0
AndreyCarter
0 / 0 / 0
Регистрация: 29.05.2012
Сообщений: 8
30.05.2012, 02:21  [ТС] #5
Цитата Сообщение от insolent Посмотреть сообщение
Подставь dlgSave1->FileName.c_str() прям в F.open:
C++
1
F.open(dlgSave1->FileName.c_str(), ios::binary);
Поставил. Ничего не изменилось, к моему огорчению.

выбивает вот такую ошибку, при нажатии на кнопку сохранения (на картинке)

вот код изменённый немного:
C++
1
2
3
4
5
        
    char * q;
    fstream F;
    F.open(dlgSave1->FileName.c_str(), ios::binary);
    F.write(itoa(quest[0].QN,q,10),sizeof(q));
Может в таком случае лучше сделать полностью записывать файл как в обычный тхт, а потом считывать и обрабатывать по началу строки? (типа как ини-файлы)

Подскажите, пожалуйста, как это будет выглядеть? (на одном примере хотя бы)
Н-р, в файле записано:
-----
TNum=0 // номер вопроса
Task=Текст вопроса // текст задания
ANum=3 // кол-во вариантов ответа
RAns=0 // индекс правильного варианта
Ans0=вариант1
Ans1=вариант2
Ans2=вариант3
-----
TNum=1
Task=Текста вопроса №2
ANum=2
RAns=0
Ans0=вар1
Ans1=вар2

// и т.д.

Очень срочно надо!!! первого сдавать уже
0
Миниатюры
Запись в файл  
30.05.2012, 02:21
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.05.2012, 02:21
Привет! Вот еще темы с ответами:

запись в файл - C++
здарова братва,есть код,как мне сделать что бы в файл записывались имена что я ввожу и имя с макс зп. #include<iostream.h> #include...

Запись в файл - C++
#include <string> #include <iostream> #include <fstream> int main() { setlocale (LC_ALL, "Russian"); ofstream...

Запись в файл - C++
подскажите где я косячнул при записи в файл В общем суть такая косяк свой никак не найду . При открытии файла всё прекрасно...

Запись в файл - C++
Что-то не то в функции write, вроде всё логично, но не выводит(подскажите ошибку #include "stdafx.h" #include "stdafx.h" #include...


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

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

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