Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
1 / 1 / 1
Регистрация: 17.10.2014
Сообщений: 153

Программа не считывает с файла текст полностью

07.04.2015, 07:25. Показов 2648. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Делаю алфавитно-частотный словарь, и во время передачи всех символов из файла в строку(дабы дальше я с помощью токенов строку разделил) у меня почему-то цикл при EOF прекращается....

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
#include <iostream>
#include <fstream>
#include <locale> 
#include "head.h"
#include <cstdio>
 
using namespace std;
 
int main()
{
system("CLS");
setlocale(LC_ALL,"rus");
 
 
char *new_word;             // Новое слово
 
FILE *in;                   // Исходный файл
in = fopen("input.txt", "r");   //Открываем файл
 
 
int i=0;    //Для подсчёта кол-ва символов в файле
if(in != NULL)  //если файл удалось открыть
{
    //char ch;  //Чтобы работать с символом
    //while((ch = getc(in)) != EOF) //пока не дойдём до конца файла
    //  i++;        //Получаем кол-во символов, чтобы позже выделить память динамически
    //cout << i ;
 
    // перемотать на конец файла
 
    fseek( in, 0, SEEK_END );
 
    // получить размер файла
    i = ftell( in );
    cout << i;
    
} 
else
{
    cout << "Файла нету... Обидка :(";
}
 
char *stroka = "\0";
stroka = new char[++i];
memset(stroka, '\0', sizeof(char)*i);   // Заполнение массива '\0'
 
fseek(in , 0, SEEK_SET); //перекиываем каретку в начало
 
char ch;
int z = 0;
while((ch = getc(in)) != EOF)
    stroka[z++] = tolower(ch); //ВОТ В ЭТОМ МЕСТЕ у меня программа должна проходить по всему тексту файла, но почему-то берёт только "asd q q q q q Название Название <Велика", а дальше выходит из цикла и другой текст не читает... 
stroka[z] = '\0';
 
 
 
system("pause");
delete []stroka; //Очищаем память
 
}
В чём проблема?
Вот пример текста:
"
asd q q q q q Название Название <Великая война> стало использоваться в СССР после радиообращения Сталина к народу 3 июля 1941 года[2]. В обращении эпитеты <великая> и <отечественная> употребляются раздельно[3]. В 1914-1915 гг. название <Великая Отечественная война> иногда применялось в неофициальных публикациях к Первой мировой войне[4]. Впервые это словосочетание было применено к войне СССР с Германией в статьях газеты <Правда> от 23 и 24 июня 1941 года[5][6] и поначалу воспринималось не как термин, а как одно из газетных клише, наряду с другими подобными словосочетаниями: <священная народная война>, <священная отечественная народная война>, <победоносная отечественная война>. Термин <Отечественная война> был закреплён введением военного Ордена Отечественной войны, учреждённого Указом Президиума Верховного Совета СССР от 20 мая 1942 года. Наименование сохраняется в постсоветских государствах (укр. Велика Вітчизняна війна, белор. Вялікая Айчынная вайна, абх. Аџьынџьт?ылат?и Еибашьра ду и др.). В странах, не входивших в состав СССР, где русский язык не является основным языком общения, название <Великая Отечественная война> практически не используется. В англоязычных странах его заменяет термин - Eastern Front (World War II) (восточный фронт (второй мировой войны)), в немецкой историографии - Deutsch-Sowjetischer Krieg, Russlandfeldzug, Ostfeldzug (немецко-советская война, русский поход, восточный поход).
"
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.04.2015, 07:25
Ответы с готовыми решениями:

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

Обрабатываемый текст программа считывает из файла
// программа считывает текст с консоли(то есть те, которые мы вводим), как сделать, чтобы она считывала с файла? #include...

программа, которая считывает текст из файла
Написать программу, которая считывает текст из файла и выводит на экран толь* ко предложения, содержащие заданное с клавиатуры слово. ...

22
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
07.04.2015, 09:36
Проблема в том, что у буквы 'я' код такой же, как у EOF.
Используй feof().
1
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
07.04.2015, 10:37
Лучший ответ Сообщение было отмечено BabaSveta как решение

Решение

Цитата Сообщение от BabaSveta Посмотреть сообщение
В чём проблема?
Неверный тип в строке 49: char ch;
1
1 / 1 / 1
Регистрация: 17.10.2014
Сообщений: 153
07.04.2015, 18:14  [ТС]
поменял на
C++
1
2
3
while((ch = getc(in)) != feof(in))
    stroka[z++] = tolower(ch);
stroka[z] = '\0';
но теперь, почему-то строка у меня заполняется лишними символами 'я' и выдает ошибку
https://www.cyberforum.ru/atta... 1428419561
https://www.cyberforum.ru/atta... 1428417603
Миниатюры
Программа не считывает с файла текст полностью   Программа не считывает с файла текст полностью  
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
07.04.2015, 18:22
Где я говорил, что надо вставить вместо EOF?
C++
1
2
3
4
5
6
7
8
9
char ch;
int z = 0;
while(true)
{
    ch = getc(in);
    if (feof(in)) break;
    stroka[z++] = tolower(ch); 
}
stroka[z] = '\0';
0
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
07.04.2015, 18:28
Цитата Сообщение от BabaSveta Посмотреть сообщение
поменял на
Сказано же: Неверный тип в строке 49
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
07.04.2015, 18:30
gazlan, при чём тут тип? Ну будет он int, всё равно цикл завершится на 'я'.
0
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
07.04.2015, 18:38
prove:
Миниатюры
Программа не считывает с файла текст полностью  
0
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
07.04.2015, 18:40
Цитата Сообщение от nmcf Посмотреть сообщение
всё равно цикл завершится на 'я'.
Вдумчиво смотрим на скрин из предыдущего поста.
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
07.04.2015, 18:55
Ну кто же знал, что байты считываются без знака, а потом преобразуются в знаковый char. В описании функций об этом не говорится.
Тем не менее мой вариант рабочий.
0
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
07.04.2015, 19:05
Цитата Сообщение от nmcf Посмотреть сообщение
В описании функций
В описании функции сказано предельно ясно: int getc(FILE* stream);

If the stream is at the end-of-file when called, the function returns EOF and sets the end-of-file indicator for the stream (feof).
И EOF - это ни разу не char. Ни со знаком, ни без.
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
07.04.2015, 23:08
Цитата Сообщение от gazlan Посмотреть сообщение
В описании функции сказано предельно ясно: int
int знаковый, значит логично предположить, что 0xFF станет -1, а не 255.
0
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
08.04.2015, 00:46
Цитата Сообщение от nmcf Посмотреть сообщение
предположить

Не по теме:

Выучите, наконец, разницу между целыми типами и не морочьте голову "предположениями".

0
08.04.2015, 10:02

Не по теме:

gazlan, заканчивай. На разницу между целыми типами я и сослался.

0
1 / 1 / 1
Регистрация: 17.10.2014
Сообщений: 153
11.04.2015, 07:55  [ТС]
Почему-то не могу удалить динамически выделенную память.
Вот код, с помощью которого я создаю элементы в односвязном списке.

C++
1
2
3
4
5
6
7
8
9
10
11
PNode CreateNode(char *NewWord, int i);                 // Создание нового узла
 
PNode CreateNode(char *NewWord, int i)
{
PNode NewNode = new Node;
NewNode->word = new char[i];
strcpy((char*)NewNode->word, (char*)NewWord);
NewNode->count = 1;
NewNode->next = NULL;
return NewNode;
}
А вот код, с помощью которого, я хочу удалить динамически выделенные слова в этих элементах.
Что я делаю не так?
C++
1
2
3
4
while(Head->next!=NULL){
    delete [] Head->word;
    Head = Head->next;
}
Выдаёт ошибку
https://www.cyberforum.ru/atta... 1428728137
Миниатюры
Программа не считывает с файла текст полностью  
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
11.04.2015, 08:14
C++
1
2
3
4
5
6
7
h = Head;
while(h != NULL)
{
    delete[] h->word;
    h->word = NULL;
    h = h->next;
}
0
1 / 1 / 1
Регистрация: 17.10.2014
Сообщений: 153
11.04.2015, 08:30  [ТС]
не работает, всё равно выдаёт ошибку.. На всякий случай выложу полностью весь код программы:

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
//файл main.cpp
#include <iostream>
#include <fstream>
#include <locale> 
#include "head.h"
#include <cstdio>
 
using namespace std;
 
int main()
{
system("CLS");
setlocale(LC_ALL,"rus");
 
PNode Head = NULL;          // Голова списка
PNode Found_Word = NULL;    // Найденное слово
PNode Place_insert = NULL;  // Место вставки
 
char *new_word;             // Новое слово
 
FILE *in;                   // Исходный файл
in = fopen("input.txt", "r");   //Открываем файл
 
 
int i=0;    //Для подсчёта кол-ва символов в файле
if(in != NULL)  //если файл удалось открыть
{
    fseek( in, 0, SEEK_END );   //Смещаем каретку на конец файла
 
    // получить размер файла
    i = ftell( in );//возвращает кол-во байтов от начала файла
    cout << i;
} 
else
{
    cout << "Файла нету... Обидка :(";
}
 
char *stroka = "\0";
stroka = new char[++i];
memset(stroka, '\0', sizeof(char)*i);   // Заполнение массива '\0'
 
fseek(in , 0, SEEK_SET); //перекиываем каретку в начало
 
int ch;
int z = 0;
 
while((ch = getc(in)) != EOF)
    stroka[z++] = tolower(ch);
stroka[z] = '\0';
 
const char separator[]=" \.,<>1234567890-[]{}()\b";
char *Ptr=NULL;
 
Ptr=strtok(stroka,separator); //Исходная строка будет изменена
cout << endl;
while (Ptr)
{
    int simvols = strlen(Ptr);
    //cout << Ptr << " " << simvols <<"\n"; //выводим слово из строки на экран
    if((Found_Word = Find(Head, Ptr))!=NULL)        //Если слово нашлось
        Found_Word->count++;
    else{
        Found_Word = CreateNode(Ptr, simvols);  // Если слова в списке нет, то создать новый узел
        Place_insert = FindPlace(Head, Ptr);    // Найти узел, перед которым нужно вставить слово
            if (Place_insert == NULL)           //место вставки
                AddLast(&Head, Found_Word);     // Если слово некуда вставить, то вставляем в конец списка
            else
                AddBefore(&Head, Place_insert, Found_Word);   // Иначе добавить слово перед заданным 
        }
        Found_Word = NULL;
        Place_insert = NULL;
 
    Ptr=strtok(0,separator); //указываем на новый токен
}
 
ofstream out("output.txt");  // Открываем полученный файл для записи
    PNode h = Head;
    while (h != NULL){
        cout << "(" << h->word << ")"<< " " <<h->count << endl;
        out << "(" << h->word << ")"<< " " <<h->count << endl;
        h = h->next;   
    }
    cout << "Программа закончила свою работу"<< endl;
system("pause");
delete []stroka; //Очищаем память
 
PNode h1;
h1 = Head;
while(h1 != NULL)
{
    delete[] h1->word;
    h1->word = NULL;
    h1 = h1->next;
}
 
 
}
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
//файл head.h
 
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <locale>
#include <conio.h>
 
using namespace std;
 
struct Node
{
    char *word;      // Слово
    int count;       // Cчетчик повторений
    Node *next;      // Ссылка на следующий элемент
};
 
typedef Node *PNode; // Указатель на эту структуру
 
/*...............................................................................*/
PNode CreateNode(char *NewWord, int i);                 // Создание нового узла
 
PNode CreateNode(char *NewWord, int i)
{
PNode NewNode = new Node;
NewNode->word = new char[i];
strcpy((char*)NewNode->word, (char*)NewWord);
NewNode->count = 1;
NewNode->next = NULL;
return NewNode;
}
 
/*...............................................................................*/
PNode Find(PNode Head, char *NewWord);       // Поиск слова в списке
 
PNode Find(PNode Head, char *NewWord)
{
    PNode q = Head;
    while (q && strcmp((char*)q->word, (char*)NewWord)) //strcmp - возвращает 0, если строки равны
        q = q->next;
    return q;
}
/*...............................................................................*/
 
/*...............................................................................*/
void AddFirst(PNode * Head, PNode NewNode);         // Добавление в начало списка
 
void AddFirst(PNode * Head, PNode NewNode)
{
    NewNode->next = *Head;
    *Head = NewNode;
}
/*...............................................................................*/
void AddAfter(PNode p, PNode NewNode);      // Добавление узла после заданного
 
void AddAfter(PNode p, PNode NewNode)
{
    NewNode->next = p->next;
    p->next = NewNode;
}
/*...............................................................................*/
void AddLast(PNode *Head, PNode NewNode);       // Добавление в конец списка
 
void AddLast(PNode *Head, PNode NewNode)
{
    PNode q = *Head;
    if (*Head == NULL){     //Если пока нет ни одного элемента
        AddFirst(Head, NewNode);   // Добавляем в пустой список
        return;
    }
    while (q->next)     //пока существует следующий элемент
        q = q->next;  // Ищем последний узел
    AddAfter(q, NewNode);   // Добавляем узел после узла q
}
/*...............................................................................*/
void AddBefore(PNode * Head, PNode p, PNode NewNode); // Добавление узла перед заданным
 
void AddBefore(PNode * Head, PNode p, PNode NewNode)
{
    PNode q = *Head;
    if (*Head == p){
        AddFirst(Head, NewNode);   // Добавление в начало списка
        return;
    }
 
    while (q && q->next != p)  // Ищем узел, за которым будет узел р
        q = q->next;
    if (q)
        AddAfter(q, NewNode);  // Добавляем узел после узла q
}
/*...............................................................................*/
/*...............................................................................*/
PNode FindPlace(PNode Head, char NewWord[]);        // Куда вставить новое слово?
 
PNode FindPlace(PNode Head, char NewWord[])
{
    int i = 0;
    PNode q = Head;
    while (q && (i = strcmp((char*)NewWord, (char*)q->word) > 0))  // Пока q существует и значение в скобках > 0, т.е. слова не равны дург другу
        q = q->next;
    return q;
}
/*...............................................................................*/
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
11.04.2015, 10:14
Лучший ответ Сообщение было отмечено BabaSveta как решение

Решение

Так попробуй.
C++
1
2
3
4
5
6
7
8
9
10
11
PNode CreateNode(char *NewWord, int i)
{
PNode NewNode = new Node;
 
NewNode->word = new char[i + 1];
 
strcpy(NewNode->word, NewWord);
NewNode->count = 1;
NewNode->next = NULL;
return NewNode;
}
1
1 / 1 / 1
Регистрация: 17.10.2014
Сообщений: 153
11.04.2015, 14:25  [ТС]
Почему-то в начале файла и иногда в середине происходит неправильный вывод в файл, почему так получается?
От меня "спасибо" и "Лучший ответ" за решение этой проблемы.

На всякий случай, выложу исправленный предыдущим постом код:

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
//файл main.cpp
#include <iostream>
#include <fstream>
#include <locale> 
#include "head.h"
#include <cstdio>
 
using namespace std;
 
int main()
{
system("CLS");
setlocale(LC_ALL,"rus");
 
PNode Head = NULL;          // Голова списка
PNode Found_Word = NULL;    // Найденное слово
PNode Place_insert = NULL;  // Место вставки
 
char *new_word;             // Новое слово
 
FILE *in;                   // Исходный файл
in = fopen("input.txt", "r");   //Открываем файл
 
 
int i=0;    //Для подсчёта кол-ва символов в файле
if(in != NULL)  //если файл удалось открыть
{
    fseek( in, 0, SEEK_END );   //Смещаем каретку на конец файла
 
    // получить размер файла
    i = ftell( in );//возвращает кол-во байтов от начала файла
    cout << i;
} 
else
{
    cout << "Файла нету... Обидка :(";
}
 
char *stroka = "\0";
stroka = new char[++i];
memset(stroka, '\0', sizeof(char)*i);   // Заполнение массива '\0'
 
fseek(in , 0, SEEK_SET); //перекиываем каретку в начало
 
int ch;
int z = 0;
 
while((ch = getc(in)) != EOF)
    stroka[z++] = tolower(ch);
stroka[z] = '\0';
 
const char separator[]=" \.,<>1234567890-[]{}()\b\"«»?!%:;/\#№";
char *Ptr=NULL;
 
Ptr=strtok(stroka,separator); //Исходная строка будет изменена
cout << endl;
while (Ptr)
{
    int simvols = strlen(Ptr);
    //cout << Ptr << " " << simvols <<"\n"; //выводим слово из строки на экран
    if((Found_Word = Find(Head, Ptr))!=NULL)        //Если слово нашлось
        Found_Word->count++;
    else{
        Found_Word = CreateNode(Ptr, simvols);  // Если слова в списке нет, то создать новый узел
        Place_insert = FindPlace(Head, Ptr);    // Найти узел, перед которым нужно вставить слово
            if (Place_insert == NULL)           //место вставки
                AddLast(&Head, Found_Word);     // Если слово некуда вставить, то вставляем в конец списка
            else
                AddBefore(&Head, Place_insert, Found_Word);   // Иначе добавить слово перед заданным 
        }
        Found_Word = NULL;
        Place_insert = NULL;
 
    Ptr=strtok(0,separator); //указываем на новый токен
}
 
ofstream out("output.txt");  // Открываем полученный файл для записи
    PNode h = Head;
    while (h != NULL){
        cout << "(" << h->word << ")"<< " " <<h->count << endl;
        out << "(" << h->word << ")"<< " " <<h->count << endl;
        h = h->next;   
    }
    cout << "Программа закончила свою работу"<< endl;
system("pause");
delete []stroka; //Очищаем память
 
PNode h1;
h1 = Head;
while(h1 != NULL)
{
    delete[] h1->word;
    h1->word = NULL;
    h1 = h1->next;
}
 
 
}

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
//файл head.h
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <locale>
#include <conio.h>
 
using namespace std;
 
struct Node
{
    char *word;      // Слово
    int count;       // Cчетчик повторений
    Node *next;      // Ссылка на следующий элемент
};
 
typedef Node *PNode; // Указатель на эту структуру
 
/*...............................................................................*/
PNode CreateNode(char *NewWord, int i);                 // Создание нового узла
 
PNode CreateNode(char *NewWord, int i)
{
PNode NewNode = new Node;
NewNode->word = new char[i+1];
strcpy((char*)NewNode->word, (char*)NewWord);
NewNode->count = 1;
NewNode->next = NULL;
return NewNode;
}
 
/*...............................................................................*/
PNode Find(PNode Head, char *NewWord);       // Поиск слова в списке
 
PNode Find(PNode Head, char *NewWord)
{
    PNode q = Head;
    while (q && strcmp((char*)q->word, (char*)NewWord)) //strcmp - возвращает 0, если строки равны
        q = q->next;
    return q;
}
/*...............................................................................*/
 
/*...............................................................................*/
void AddFirst(PNode * Head, PNode NewNode);         // Добавление в начало списка
 
void AddFirst(PNode * Head, PNode NewNode)
{
    NewNode->next = *Head;
    *Head = NewNode;
}
/*...............................................................................*/
void AddAfter(PNode p, PNode NewNode);      // Добавление узла после заданного
 
void AddAfter(PNode p, PNode NewNode)
{
    NewNode->next = p->next;
    p->next = NewNode;
}
/*...............................................................................*/
void AddLast(PNode *Head, PNode NewNode);       // Добавление в конец списка
 
void AddLast(PNode *Head, PNode NewNode)
{
    PNode q = *Head;
    if (*Head == NULL){     //Если пока нет ни одного элемента
        AddFirst(Head, NewNode);   // Добавляем в пустой список
        return;
    }
    while (q->next)     //пока существует следующий элемент
        q = q->next;  // Ищем последний узел
    AddAfter(q, NewNode);   // Добавляем узел после узла q
}
/*...............................................................................*/
void AddBefore(PNode * Head, PNode p, PNode NewNode); // Добавление узла перед заданным
 
void AddBefore(PNode * Head, PNode p, PNode NewNode)
{
    PNode q = *Head;
    if (*Head == p){
        AddFirst(Head, NewNode);   // Добавление в начало списка
        return;
    }
 
    while (q && q->next != p)  // Ищем узел, за которым будет узел р
        q = q->next;
    if (q)
        AddAfter(q, NewNode);  // Добавляем узел после узла q
}
/*...............................................................................*/
/*...............................................................................*/
PNode FindPlace(PNode Head, char NewWord[]);        // Куда вставить новое слово?
 
PNode FindPlace(PNode Head, char NewWord[])
{
    int i = 0;
    PNode q = Head;
    while (q && (i = strcmp((char*)NewWord, (char*)q->word) > 0))  // Пока q существует и значение в скобках > 0, т.е. слова не равны дург другу
        q = q->next;
    return q;
}
/*...............................................................................*/
Заранее спасибо!
Миниатюры
Программа не считывает с файла текст полностью   Программа не считывает с файла текст полностью  
0
1 / 1 / 1
Регистрация: 17.10.2014
Сообщений: 153
11.04.2015, 14:47  [ТС]
вот текст в файл input.txt для примера:
"
Наверное, каждый уже задавал себе этот вопрос: почему-то, когда смотришь новости с «евромайдана», всё время вспоминается русская народная сказка «Волк и Лиса», в которой хитрая Лиса, коварством покалечила Волка, передёргиванием залезла ему на спину и обманом заставила его себя везти. При этом издевательски приговаривая: «Битый небитого везёт».

А людям, связанным с музыкальной средой, эта же самая ситуация отчётливо напоминает некое ужасное по своей сути произведение, тем не менее разыгранное по заранее написанным нотам, которые есть только у исполнителей. А все остальные люди, в том числе украинцы и русские на Украине, в этой ситуации поставлены в позицию слушателей – мол, внимайте нашему представлению, мы вас вокруг пальца обведём. Причём столько раз, что вы основательно запутаетесь.

Как не все способны в симфоническом оркестре слышать каждую скрипку по отдельности, так и не все способны разобраться в панмировом кровавом спектакле под названием «Евромайдан». Большинство людей – обычные нормальные люди. Они просто слушают новости и сопереживают.



Миссионер из Израиля

В первое воскресенье марта 2014 года в своей телепередаче ведущий Владимир Рудольфович Соловьёв собрал экспертов по украинскому вопросу. Точнее сказать, по украинской трагедии. Соловьёв, как всегда, похвастался тем, что он еврей, и заявил, что среди евреев есть сильные ребята, готовые выступить в соответствующей ситуации и проявить силу. Владимир даже специально на камеру пожевал желваками, чтобы показать решительность и мощь еврейского народа.

Это выступление во многом задало тон передаче, и публицист Авигдор Эскин с пылом, свойственным хорошему оратору, в свою очередь, заявил, что он прибыл на эту телепередачу из Иерусалима специально для того, чтобы разобраться в важном вопросе. Этот вопрос заключается в следующем. Как выразился Авигдор, у евреев тоже есть свои фекалии. Примерно так он охарактеризовал евреев, которые действуют в нарушение закона и во вред еврейской общине. После этого публицист назвал имена – это те, кто устроил сегодняшний Евромайдан: Кличко, Яценюк и Коломойский. В конце своего заявления Авигдор попросил себе полномочий для того, чтобы разобраться с указанными лицами: «Я так разберусь, так разберусь!».

Таким образом, украинский госпереворот предстал перед телезрителями центрального телевидения России совершенно в ином свете. Ведь почти все СМИ приписывают незаконные выступления неким «украинским» националистам и даже ищут свастику, а теперь уважаемые журналист Соловьёв и публицист Эскин заявляют о еврейском национализме, причём, не просто стоящем где-то в сторонке, а руководящем и финансирующем «евромайдан». Получается, что искать надо не свастику, а нужно фиксировать звезду Давида, которой полно на баррикадах. А это уже совсем другое дело. В ситуации, когда целая страна поставлена в состояние военного противостояния, когда нависла угроза территориальной целостности, к таким заявлениям необходимо относиться серьёзно и серьёзно на них реагировать.



Сыны Израиля

Позицию израильского публициста Эскина подтверждают и украинские СМИ, и, что более важно, израильские издания. Так, журнала «Лехаим» (№12, декабрь 2003 г.), сообщает, что «Кличко по отцу и матери чистокровный еврей, бабка его еврейка Тамара Этинзон». Портал «jewish.ru» в статье, посвящённой отцу Кличко, подтверждает данные журнала. Кроме этого сообщается, что «Тягнибок по матери чистокровный еврей, его бабка еврейка по фамилии Фротман, а прадед еврей Ленгин Цегельский. Яценюк по матери чистокровный еврей, его мать еврейка с фамилией Бакай. Один из его родственников по матери раввин Бакаи».

Из остальной оппозиции Пётр Порошенко – молдавский еврей, урождённый Вальцман, взявший после свадьбы фамилию жены («Forbes»), Виктор Пинчук – происходит из известного еврейского рода («Genshtab.info»), а писатель Эдуард Ходос утверждает, что «Юлия Владимировна Тимошенко – чудовище. Мать Юлии Тимошенко – еврейка». Об олигархе Коломойском и искать не приходится, он возглавляет Еврейский европейский парламент, силами и средствами которого на деньги самого Коломойского «евромайдан» и устроен.

Ну, и, пожалуй, самый яркий «украинский» националист – Ярош. На сайте «Иудаизм и евреи», в разделе «Спросите раввина» размещена небольшая энциклопедия «Еврейские фамилии». В ней есть статья «Что означает фамилия ЯРОШ?», которая даёт ответ: «Вероятно, что фамилия Ярош произошла от ивритского слова йореш, которое означает наследник. Очевидно, предок носителя этой фамилии унаследствовал имущество или другое существенное наследие».

Есть даже конкретизация: Авдим Ярош родился в еврейском местечке Каменское и уже в 12 лет знал наизусть Шулхан Арух и сочинения Зеева Жаботинского. Посмотреть на маленького гения в Каменское приезжал лично Менахем Бегин. После продолжительной беседы он благословил Авдима, и назвал его «будущим Маккавеем». Подросший Ярош стал одним из основателей сионистской террористической организации «Тризуб» им. Шимона Бендера. Да и Бандера, оказывается, галахический еврей: его мать Мирослава Глодзинская – польская еврейка.



Патологические революционеры

Осенью 2013 года президент России Владимир Путин дал жёсткую оценку кровавым революционным событиям и роли международного еврейства в них. Он сказал, что членами первого советского правительства «примерно на 80 – 85% были евреи». Тогда еврейские СМИ обозвали российского президента антисемитом.

Но вот новая революция. Теперь уже на Украине. И что мы видим? Ситуация повторяется. Во главе преступников, которые устраивают в стране кровавый государственный переворот снова стоят евреи. Отметим, антисемитизм здесь ни при чём, и это чётко показали в своих выступлениях Владимир Соловьёв и Авигдор Эскин.

Здесь важна другая ситуация. Как правильно заметил Эскин, преступники есть в любом народе. Простые евреи давно знают, что преступники из их среды входят в организацию Хабад, которая стоит за спинами Кличко, Яроша и других «украинских» еврейских националистов. Эта организация принесла уже много зла простым евреям. Но беда в том, что преступников из еврейской среды удалить затруднительно, они тут же прячутся за антисемитизм. Вспомним, сбежавших в Израиль преступников – руководителей Российского еврейского конгресса Леонида Невзлина и Владимира Гусинского. Вот и получается, еврейские олигархи совершают преступления, а простые евреи подвергаются гонениям. И это понятно: общины и существуют на деньги этих олигархов.
"
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.04.2015, 14:47
Помогаю со студенческими работами здесь

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

Программа, которая считывает текст из файла и выводит его на экран
Помогите, пожалуйста, перевести код из С в C# Задание: Программа, которая считывает текст из файла и выводит его на экран, после...

Программа, которая считывает текст из файла, и выводит на экран только цитаты
Написать программу, которая считывает текст из файла и выводит на экран только цитаты, то есть предложения, заключенные в кавычки. не...

программа считывает английский текст из файла и выводит на экран слова начинающиеся с гласных букв
3) Написать программу, которая считывает английский текст из файла и выводит на экран слова начинающиеся с гласных букв. Очень нужно

программа, которая считывает текст из файла и выводит на экран только предложения, не содержащие запятых
написать программу, которая считывает текст из файла и выводит на экран только предложения, не содержащие запятых. делаю на application. ...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru