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

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

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

Считывание строки из файла. И дальнейшая работа со следующей по счету строкой - C++

23.11.2014, 00:33. Просмотров 211. Ответов 0
Метки нет (Все метки)

Название может криво написал, лучше опишу задание.

Написать программу, которая в качестве аргумента командной строки принимает имя текстового файла, содержащего элементы трёх видов:
+ <слово>
- <слово>
? <слово>
Элементы отделяются друг от друга одним или несколькими разделителями – пробелами, табуляциями, символами новой строки. Слово с предшествующим плюсом добавляется в упорядоченный динамический список, если его там ещё нет (в качестве функции сравнения слов использовать лексикографическое сравнение). Если числу предшествует минус, то это слово удаляется из списка (если оно было в нём). Если перед словом стоит вопрос, то оно печатается в выходной поток в отдельной строке вместе со словом Yes или No в зависимости от того, присутствует ли это слово в построенном на тот момент списке.

В общем, что мне удалось сделать.

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
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#include <fstream>
#include <cstdlib>
#include <iostream>
#include <string>
#include <stdio.h>
 
class Node
{
 
public:
    char* data;
    Node *next;
 
    Node()
    {
        char* data = new char[30];
    }
 
    Node(char* element)
    {
        strcpy_s(data, 20, element);
        next = NULL;
    }
 
    char *getdata()
    {
        return data;
    }
};
 
class DynList
{
    Node *head;
public:
 
    DynList()
    {
        head = NULL;
    }
 
    ~DynList()
    {
        Node *temp;
        while (head != NULL)
        {
            head = head->next;
            delete temp;
            temp = head;
        }
    }
 
    void AddFirst(DynList &l, char* element);
    Node* Search(DynList &l, char* element);
    void Delete(DynList &l, Node *temp);
};
 
void DynList::AddFirst(DynList &l, char* element)
{
 
    Node *NewNode = new Node;
    NewNode->data = element;
    NewNode->next = NULL;
 
    NewNode->next = l.head;
    l.head = NewNode;
}
 
Node* DynList::Search(DynList &l, char* element)
{
    while (head != NULL)
    {
        if (head->data = element)
            return l.head;
        l.head = l.head->next;
    }
    return l.head;
}
 
void DynList::Delete(DynList &l, Node *temp)
{
    if (temp == l.head)
    {
        l.head = temp->next;
    }
 
    //рабоча¤ переменна¤-узел дл¤ движени¤ по списку
    Node *r = new Node;
    r = head;
    while (r->next != temp)
    {
        r = r->next;
    }
    r->next = temp->next;
    delete(temp);
}
 
 
int main()
{
    char* element = new char[30];
    DynList vars;
    std::ifstream file("3.txt");
 
    if (file.is_open() )
    {
        while (!file.eof() )
        {
            getline(file, element);
        }
 
    }
 
 
 
    return 0;
}
Во первых компилятор (работаю в VS) ругается на getline. Можете помочь?
C++
1
2
3
4
5
6
Error   1   error C2784: 'std::basic_istream<_Elem,_Traits> &std::getline(std::basic_istream<_Elem,_Traits> &,std::basic_string<_Elem,_Traits,_Alloc> &)' : could not deduce template argument for 'std::basic_istream<_Elem,_Traits> &' from 'std::ifstream'   
Error   2   error C2784: 'std::basic_istream<_Elem,_Traits> &std::getline(std::basic_istream<_Elem,_Traits> &,std::basic_string<_Elem,_Traits,_Alloc> &)' : could not deduce template argument for 'std::basic_string<_Elem,_Traits,_Alloc> &' from 'char *'
Error   3   error C2780: 'std::basic_istream<_Elem,_Traits> &std::getline(std::basic_istream<_Elem,_Traits> &,std::basic_string<_Elem,_Traits,_Alloc> &,const _Elem)' : expects 3 arguments - 2 provided    
Error   4   error C2784: 'std::basic_istream<_Elem,_Traits> &std::getline(std::basic_istream<_Elem,_Traits> &&,std::basic_string<_Elem,_Traits,_Alloc> &)' : could not deduce template argument for 'std::basic_istream<_Elem,_Traits> &&' from 'std::ifstream' 
Error   5   error C2784: 'std::basic_istream<_Elem,_Traits> &std::getline(std::basic_istream<_Elem,_Traits> &&,std::basic_string<_Elem,_Traits,_Alloc> &)' : could not deduce template argument for 'std::basic_string<_Elem,_Traits,_Alloc> &' from 'char *'
Error   6   error C2780: 'std::basic_istream<_Elem,_Traits> &std::getline(std::basic_istream<_Elem,_Traits> &&,std::basic_string<_Elem,_Traits,_Alloc> &,const _Elem)' : expects 3 arguments - 2 provided
Текстовые данные у меня хранятся в таком виде:
C++
1
+ The + donation + will + go + toward + the ? CDC - Global + Disaster + Response + Fund + and + is + expected + to + help + finance + training - and + equipment ? in + various + ebola + care + centers. + It + important - to - note + that - the + gift - by + Mark ? Zuckerberg ? and - Dr. ? Dre
Я хочу применить такой алгоритм.
1. Считываю слова из файла
2. Далее прописываю условия, что если считывается один из символов-флагов ("+", "-", "?"), то к следующему слову применяется соответствующая функция-метод класса.
Так вот, как мне обратиться к следующему после флагу слову?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.11.2014, 00:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Считывание строки из файла. И дальнейшая работа со следующей по счету строкой (C++):

Считывание данных из файла в массив и дальнейшая их сортировка - C++
Здравствуйте! В общем, задача такая: есть файл с двумя столбцами из чисел (числа с запятой). Нужно считать числа из второго столбца, затем...

Работа со строкой из файла - C++
Словом текста считается любая последовательность цифр и букв русского алфавита длиной не более 6 символов; между соседними словами - не...

Считывание с бинарного файла большого массива и дальнейшая работа с ним - Delphi
Здравствуйте. Подскажите пожалуйста. В общем передо мной стоит задача считать информацию из бинарных файлов разных размеров от 1 Mb,...

Чтение файла в массивы и дальнейшая работа с ними - C#
Здравствуйте! Столкнулся с проблемой чтения массивов из файла. Задача следующая: необходимо считать из файла, в котором 4 столбца и n...

Загрузка файла и дальнейшая работа именно с загруженным файлом - PHP
Добрый вечер! Коротко что это за штука: Загрузить файл (xls), затем считать из загруженного файла данные, отобразить их, использую...

.NET 4.x Узнать содержимое следующей строки файла - C#
Мужики, привет, у меня к вам вот такой вот вопрос: У меня есть файлик, в нем N-ое количество строк, мне нужно найти строку с помощью...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.11.2014, 00:33
Привет! Вот еще темы с ответами:

работа с массивом и строкой. (прога в 4 строки) но не работает:( - JavaScript
MyArray=new Array(&quot;массив&quot;,&quot;мой массив&quot;,&quot;масло&quot;,&quot;масса&quot;); str=mas; pos = str.indexOf(&quot;а&quot;); document.write(str,&quot; &quot;,pos); ...

.NET 4.x Считывание Определенной Строки Из Файла По Номеру Строки? - C#
Считывание Определенной Строки Из Файла По Номеру Строки? // В БД Слов содержиться в текстовом файле, нужно рандомно считывать одно...

Считывание строки из файла до символа переноса строки - Assembler
К примеру у меня есть текстовый файл, который содержит в себе несколько строчек символов. Мне надо из него считать только первую строчку,...

Замена каждой n-ной строки текстового файла заданной строкой - CMD/BAT
Добрый день, пробую написать скрипт, в котором бы в каждую n-ю строку (например, 6ю) текстового файла вставлялась другая строка. ...


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

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

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