8 / 5 / 3
Регистрация: 13.02.2013
Сообщений: 294
1

Вывод текста из файла

21.10.2015, 20:42. Показов 1299. Ответов 8
Метки нет (Все метки)

Доброго времени суток, пишу программу тестирования, все вопросы с вариантами ответов и верным ответом хранятся в одном файле. Вопрос: как вывести на экран консоли вопрос и несколько вариантов ответов?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.10.2015, 20:42
Ответы с готовыми решениями:

Вывод текста с файла
В консоле пустота,что я сделал в этой жизни не так? #include <fstream> #include <iostream> ...

Вывод текста из файла в консоль
Не могу найти ошибку при выводе текста из файла в консоль, при попытке использования функции ничего...

Вывод текста из файла по странице
Добрый день! Прошу Вашей помощи! Интересует вопрос как выводить текст из файла txt по странице...

Вывод текста из текстового файла
Я в плюсах новичок но мне нужно вывести из текстового файла всё что там есть в обычную строку для...

8
202 / 138 / 88
Регистрация: 21.12.2014
Сообщений: 369
21.10.2015, 20:45 2
Что именно непонятно? Как работать с файлами или как отделить вопросы от ответов?
0
Любитель чаепитий
3726 / 1786 / 561
Регистрация: 24.08.2014
Сообщений: 5,983
Записей в блоге: 1
21.10.2015, 21:06 3
Kurtis, Вот моя наработка, здесь эта функция выводит от слова, указанного в аргументах, пример прилагается, разберетесь, я думаю.
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
string Load( const string& NameFile, const string& FindWord, const string& EndFindWord ) {
    int ErrorFindWord = 0;
    fstream file( NameFile ); // Открываем файл
    string s = "";
    string g_s = "";
    while( !file.eof() ) { // Пока не закончится файл
        getline( file, s );
        if ( s == FindWord ) {  // Проверка нахождения ключевого слова
            for( int i = 0; i < 20; ++i ) { // Проверяем следущие 20 строк на наличие EndFindWord
                getline( file, s );
                if( s == EndFindWord ) {
                    file.close();
                    return g_s; // Если нашли, то возвращаем весь скопированный текст
                }
                else {
                   ErrorFindWord = 2;
                    g_s += s + "\n"; // Если не нашли, то записываем в строку
                }
            }
        }
        else {
           ErrorFindWord = 1;
        }
    }
    file.close();
    if( ErrorFindWord == 1 ) { return FindWord + " not found!"; } // 1-е слово не найдено
    if( ErrorFindWord == 2 ) { return EndFindWord + " not found!"; } // 2-е слово не найдено
    return "Unknown error\n";
}
И пример:
C++
1
std::cout << Load( "a.txt", "StartLoad" "EndLoad" );
Вроде работает. Надеюсь пригодится вам.
Кол-во проверяемых строк можете менять по надобности, у меня просто 20 достаточно было.
0
8 / 5 / 3
Регистрация: 13.02.2013
Сообщений: 294
21.10.2015, 21:32  [ТС] 4
Нужно выводить по 4 строки из файла(1- вопрос, остальные ответы), после этого дать пользователю возможность ответить и таким же макаром дальше. Как это реализовать? У меня получается только счиать построчно до конца файла.
0
Любитель чаепитий
3726 / 1786 / 561
Регистрация: 24.08.2014
Сообщений: 5,983
Записей в блоге: 1
21.10.2015, 21:54 5
Kurtis, Вы можете изменять файл?
0
3174 / 1933 / 313
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
21.10.2015, 21:57 6
Text-based user interface
0
8 / 5 / 3
Регистрация: 13.02.2013
Сообщений: 294
21.10.2015, 22:10  [ТС] 7
makfak, если я Вас правильно понял,то текстовый файл я забивал вручную, а команду для чтения использовал ,ifstream. Отвечая на Ваш вопрос, предполагаю что могу.
0
599 / 237 / 69
Регистрация: 08.08.2015
Сообщений: 1,637
21.10.2015, 22:26 8
Вводит от заданой метки до первой ; так что пользуйтесь
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//Функция для отрисовки меню из файла
bool GetMenu(const std::string& MMetka)
{
    std::string filename="menu.txt";
    std::string MEND=";";
    std::ifstream inFile (filename);
    if (!inFile.is_open())
    {
    std::cout<< "fstream not open\n";
    system("ls");
    std::cin>>filename;
    }
    std::string line;
    while (getline(inFile, line))
        if (line==MMetka)
        {
            while (getline(inFile, line))
                if (line==MEND) break;
            else
                std::cout << line << std::endl;
        }
    return 0;
}
Добавлено через 3 минуты
Можно и так если удобнее (передаем не только имя начала но и файл и метку конца вывода
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
bool GetMenu(const std::string& MMetka, const std::string& QuFILE, const char& ends )
{
    std::string filename=QuFILE;
    std::string MEND=ends;
    std::ifstream inFile (filename);
    if (!inFile.is_open())
    {
    std::cout<< "fstream not open\n";
    system("ls");
    std::cin>>filename;
    }
    std::string line;
    while (getline(inFile, line))
        if (line==MMetka)
        {
            while (getline(inFile, line))
                if (line==MEND) break;
            else
                std::cout << line << std::endl;
        }
    return 0;
}
0
Любитель чаепитий
3726 / 1786 / 561
Регистрация: 24.08.2014
Сообщений: 5,983
Записей в блоге: 1
22.10.2015, 08:20 9
Kurtis, Ну в таком случае ты можешь забить файл так:
<Question>
2+2=?
1)3
2)4
3)5
...
</Question>

А вызывать функцию так:
C++
1
Load( "Question.txt", "<Question>", "</Question>" );
Далее делаете ввод значения и его уже проверяем.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.10.2015, 08:20
Помогаю со студенческими работами здесь

Вывод текста из файла разом
Здравствуйте. Такой вопрос: есть ли такая команда, чтобы вывести содержимое файла разом? Чтоб не...

Вывод текста с файла на экран
код таков FILE *f=fopen(&quot;c://test.txt&quot;, &quot;r&quot;); int c=getc(f); printf(&quot;%c&quot;, c);...

Вывод текста из файла в столбик
Здравствуйте всем. Знаю как вывести из файла текст, но не знаю как его вывести в столбик. Чтобы...

Вывод текста из файла в DataGridView
Всем привет! Как в MS VS2015 года открыть текстовый файл и на пример вывести его в datagridview? не...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru