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

Чтение из файла и строки - C++

Восстановить пароль Регистрация
 
MastAKK
 Аватар для MastAKK
144 / 135 / 12
Регистрация: 13.10.2012
Сообщений: 586
Записей в блоге: 1
27.11.2012, 16:19     Чтение из файла и строки #1
Всем привет, у меня есть проблема со строками и чтением из файла. Предположим в файле 6 строк:
What?
A
Who?
B
Why?
C
Нужно чтобы первая выводилась, а вторая была ответом (программка типа тест вопрос-ответ)
Написал вот так:
C++ (Qt)
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#include <iostream>
#include <fstream>
#include <cstring>
 
using namespace std;
 
char* vopr_otv(int& j, int& num_vopr, int kol_vopr, int& num_str){
    ifstream in("questions.txt");
 
    char s;
    char* ro = new char[20];
 
    if(num_vopr > 1){
        while(num_str < num_vopr + j){
            in.get(s);
            if(s == '\n') num_str++;
        }
    }
 
    while(num_vopr + j <= num_str){
        in.get(s);
        cout << s;
        if(s == '\n'){
            in >> ro;
            num_str++;
            break;
        }
    }
    in.close();
 
    j+=2;
 
    return ro;
}
int main()
{
    int num_vopr = 1, kol_vopr = 0, num_str = 1; //num_vopr - номер вопроса, kol_vopr - общее кол-во вопросов, num_str - номер строки с вопросом
    int j = 0;
 
    ifstream in("questions.txt");
 
    char s;
    while(!in.eof()){
        in.get(s);
        if(s == '\n') kol_vopr++;
    }
    in.close();
 
    kol_vopr /= 2;
 
    char* o;
    o = new char[20];
    char* ro;
    ro = new char[20];
    do{
        ro = vopr_otv(j, num_vopr, kol_vopr, num_str);
        cin >> o;
        int b = strlen(ro);
        int i = 0;
        while(i < b){
            if(ro[i] == o[i]){
                i++;
                continue;
            }
            cout << "\nNo. Right answer - " << ro << endl;
            break;
        }
        if(i == b){
            cout << "\nYes!\n";
        }
        num_vopr++;
    }while(num_vopr <= kol_vopr);
    return 0;
}
Только она выводит сперва первый вопрос, потом второй, а вместо третьего снова второй и тд (в зависимости от кол-ва вопросов, то есть он после 2-го будет выводить только 2-ой вопрос). Что мне делать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.11.2012, 16:19     Чтение из файла и строки
Посмотрите здесь:

Строки, чтение из файла C++
Чтение строки из файла C++
Чтение строки из файла C++
C++ Чтение строки и файла
Чтение строки из файла C++
Чтение строки из файла C++
C++ чтение строки из файла
C++ Чтение строки из файла

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
27.11.2012, 16:40     Чтение из файла и строки #2
С учетом регистра:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <fstream>
#include <cstring>
int main()
{
     char q[50],a[50];
     std::ifstream f("1.txt");
     while (f.good())
     {
             f.getline(q,50);
             std::cout<<q<<": ";
             std::cin>>a;
             f.getline(q,50);
             if (!strcmp(q,a))
                 std::cout<<"Yes"<<'\n';
             else
                 std::cout<<"No"<<'\n';         
    }
     return 0;
}
Yandex
Объявления
27.11.2012, 16:40     Чтение из файла и строки
Ответ Создать тему
Опции темы

Текущее время: 04:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru