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

Как сделать запись данных из файла в массив по условию для программы тестирования? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Программа ввода вывода массивов http://www.cyberforum.ru/cpp-beginners/thread1768132.html
Программа ввода\вывода массивов. Вводишь 10 элементов массива, далее программа выводит в столбец эти элементы. Строка 17.цикл while выполняется при условии, что ввод элемента массива не успешен(например, введена буква). Тогда вам нужно ввести ввести значение i-ого элемента массива ещё раз. В чём заключается ошибка: когда вводишь набор букв(kfjdk), то цикл работает. А когда вводишь сначала число а...
C++ Как этот массив переделать в статический? #include <stdlib.h> //для system #include <stdio.h> //для fscanf #include <iostream> //для cout #include <iomanip> //для setw using namespace std; int N; //Строк int M; //Столбцов int ** A; //Матрица int n; http://www.cyberforum.ru/cpp-beginners/thread1768121.html
C++ Сброс буфера вывода
Здравствуйте.Изучаю библиотеку ввода и вывода, познакомился тремя способами сброса буфера: endl, flush, ends. Могли бы вы привести примеры,в каких случаях нужно(лучше,правильнее) использовать определённый манипулятор?(Чем отличаются знаю) P.S.Манипулятор ends по идее должен вывести ещё и нулевой символ,но у меня просто пробел, так и должно быть?
Реализация ispunct при использовании потоков C++
Дана программа-переводчик с англ. на русский. Проблема в том, что при вводе текста со знаками препинания или с регистром не считывается перевод. Как реализовать ispunct при использовании в программе потоков? Или стоит другую функцию реализовать? Прошу вас о помощи. Спасибо за понимание
C++ Функция поиска в массиве, количества элементов подходящих условию http://www.cyberforum.ru/cpp-beginners/thread1768009.html
Подскажите пожалуйста, почему при компиляции прекращается работа программы, в чем ошибка? #include <iostream> #include <cmath> #include <cstdlib> #include <math.h> using namespace std; void f(); int main( ){ f();
C++ Дописать функцию удаления по заданному ключу для списка Ребят, нужно чуть дописать, весь мозг сломал:wall: #include <iostream> #include <iomanip> #include <Tchar.h> #include <locale.h> #include <conio.h> #include <string.h> using namespace std; // переменные struct muz { подробнее

Показать сообщение отдельно
c3490375
1 / 1 / 0
Регистрация: 04.06.2016
Сообщений: 60
Завершенные тесты: 1

Как сделать запись данных из файла в массив по условию для программы тестирования? - C++

21.06.2016, 17:56. Просмотров 225. Ответов 8
Метки (Все метки)

Здравствуйте, появилась идея создать свой "тестер".
В связи с этим появилось несколько вопросов, ну чтобы было понятнее опишу работу программы.
Содержимое файла test.txt:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@Вопрос 1
Ответ 1
*Ответ 2
Ответ 3
Ответ 4
Ответ 5
 
@Вопрос 2
Ответ 1
Ответ 2
Ответ 3
*Ответ 4
Ответ 5
 
....
 
@Вопрос N
Ответ 1
Ответ 2
Ответ 3
Ответ 4
*Ответ 5

Принцип работы:

1) Для начала открываем файл;
2) Далее считаем кол-во вопросов, а именно по такому алгоритму:
-Каждая пустая строка - 1 вопрос с вариантами ответов, то бишь, если встречаем пустую строку - плюсуем счетчик +1
3) Через for записываем файл в массив структур, сама структура
Сама структура
C++
1
2
3
4
5
6
7
8
9
struct
{
    string question; // Вопрос
    string ans1; // Ответ 1
    string ans2; // Ответ 2
    string ans3; // Ответ 3
    string ans4; // Ответ 4
    string ransw; // Правильный ответ
};

Записываем по такому принципу:
если в начале строки встречаем символ "*", то записываем в ransw,
если @, то записываем в question,
если ничего нет, то в обычный string ans1,2,3,4.

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
45
46
47
48
#include <iostream>
#include <fstream>
#include <conio.h>
#include <Windows.h>
#include <string>
 
using namespace std;
 
struct test
{
    string question; // Вопрос
    string ans1; // Ответ 1
    string ans2; // Ответ 2
    string ans3; // Ответ 3
    string ans4; // Ответ 4
    string ransw; // Правильный ответ
};
 
void main()
{
    SetConsoleOutputCP(1251);
    SetConsoleCP(1251);
    //----------------------------------------------------//
    //Считаем кол-во вопросов
    string string1;
    int n = 0;
    ifstream fin("test.txt");
    while (fin)
    {
        getline(fin, string1);
        if (string1.empty())
        {
            n++;
        }
    }
    cout << "Кол-во вопросов в файле: " << n << endl;
    fin.seekg(0, ios::beg); // Устанавливаем указатель в начало файла.
    //----------------------------------------------------//
    test *questions = new test[n]; // Выделяем динамическую память под кол-во вопросов.
    char ch1 = '*',
        ch2 = '@';
    for (int i = 0; i < n; i++) // Не знаю как реализовать запись в массив структур.
    {
        
    }
    delete[] questions;
    system("pause");
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 07:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru