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

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

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

При повторном использовании в strncmp не сохраняется введенный символьный массив - C++

02.05.2014, 23:54. Просмотров 211. Ответов 1
Метки нет (Все метки)

Подскажите, по какой причине символьный массив char, заполненный через cin.get(), при повторном использовании в strncmp стирает введенные значения
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
ifstream in("voc.txt");
    ofstream out("voc1.txt");
    if (!in)
    {
        cout << "Файл voc.txt не быд открыт\n";
    }
    else
    {   
        char ch[MaxLn];
        char voc[MaxLn];
        int ln, pos;
        int i = -1;
        bool w = 0;
        cout << "Введите слово, которое следует удалить:\n";
        while (!w)
        {
            i++;
            if (i == MaxLn)
            {
                break;
            }
 
            ch[i] = cin.get();
            w = (ch[i] == '\n');
        }
        if (i == MaxLn)
        {
            cout << "Конец ввода строки.\n";
            ch[i - 1] = '\n';
            
        }
        
        ln = i;
        bool del = false;
        while (!in.eof())
        {
            in.getline(voc, 30);
            if (strncmp(voc, ch, ln) == 0) // первый раз ch еще имеет значения, потом уже нет
            {
                del = true;
                break;
            }
                out << voc << endl;
            
        }
        if (del == false)
        {
            cout << "Слово отсутствует в словаре\n";
        }
        else
        {
        while (!in.eof())
        {
            in.getline(voc, 30);
            out << voc << endl;
        }
        cin.clear();
        cin.sync();
        out.close();
        in.close();
        remove("voc.txt");
        rename("voc1.txt", "voc.txt");
        }
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.05.2014, 23:54
Здравствуйте! Я подобрал для вас темы с ответами на вопрос При повторном использовании в strncmp не сохраняется введенный символьный массив (C++):

.NET 3.x Значение переменных не сохраняется при повторном открытии формы - C#
По совету из форума создал класс в главном классе проекта (главный класс всё время в памяти) static class Data { public...

Почему при повторном открытии OpenFileDialog сохраняется предыдущее имя файла - Visual Basic .NET
Вобщем программирую кнопку cmdOfile для открытия диалогового окна, после открытия окна, в поле Имя файла пишет OpenFileDialog1, я его...

Падает скрипт при повторном использовании функций - Python
Все очень просто, у меня есть 3 функции которые я вызываю подряд, а потом снова. Мне нужно просто запустить функцию, больше ничего. ...

При повторном использовании recursive_directory_iterator программа выдает ошибку - Boost C++
при повторном использовании recursive_directory_iterator программа дает вот такое: Как я понимаю recursive_directory_iterator в...

Введенный текст не сохраняется - C# ASP.NET
Я сделал маску ввода для TextBox-a. Привязал MaskedEditExtender. У меня есть еще DropDownList. При выборе значения в нем текст из...

Скопировать одномерный символьный массив в двумерный символьный массив - C (СИ)
Здравствуйте, учусь программировать на Си. Столкнулся с проблемой: не могу скопировать одномерный символьный массив в двумерный символьный...

1
stawerfar
141 / 55 / 4
Регистрация: 14.12.2010
Сообщений: 347
Записей в блоге: 1
03.05.2014, 00:22 #2
С чего ты вообще взял что она стирает значения в массиве?

Добавлено через 4 минуты
Насколько я помню после get line нужно ignore юзать тогда все оклей будет
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.05.2014, 00:22
Привет! Вот еще темы с ответами:

Как получить массив из значений при использовании цикла? - JavaScript
привет всем, в програмировании новичёк, помогите получить массив, имеется вот такая прога, мне нужны все значения фунуции. &lt;! DOCTYPE...

Добавить программу, чтобы вводился массив слов, очищался экран и печатался введенный массив в столбик - Turbo Pascal
Добавить программу так, чтобы вводился массив слов, очищался экран и печатался введенный массив в столбик одним из следующих способов: -с...

Является ли введенный массив из файла массив отсортированным - Turbo Pascal
Считать целочисленный массив А(m) из текстового файла Beg.txt и выполнить проверку: является ли введенный массив отсортированным....

При первом нажатии кнопки - выполнялся один код,при повторном другой и тд - JavaScript
Имеется код : document.onkeydown = function(z) { if (z.keyCode==&quot;120&quot;) { var h = document.getElementsByTagName('a'); ...


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

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

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