Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Kirill Losev
3 / 3 / 2
Регистрация: 01.10.2011
Сообщений: 249
1

правильно ли проверка на то, что поиск пуст?

15.04.2012, 21:35. Просмотров 470. Ответов 6
Метки нет (Все метки)

вот часть кода:
C++
1
2
3
4
5
6
7
8
...
proc = strstr(proc, slovo);
if(proc == NULL)
{
  log << "proc is NULL\n";
  break;
}
...
Правильно я делаю или нет? Просто если я вставляю еще одну часть кода, то выходит ошибка "Segmentation fault". Если надо, могу весь код выложить.

Спасибо за помощь!

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.04.2012, 21:35
Ответы с готовыми решениями:

Проверка пуст ли массив?
В операторе ввода класса хотел реализовать проверку на то пуст массив или нет,...

Как узнать, что текстовый файл пуст?
Обычная проверка на if(feof(f)) не работает...файл пуст- я его проверял, но...

Проверка, пуст ли список, очистка списка, печать списка в направлении от верха к низу
Доброго вечера. Пожалуйста помогите разобраться с заданием на структуры, и...

После удаления (перезаписи) данных из бинарного файла, файл всё равно существует, несмотря на то, что он пуст
после удаления(перезаписи) данных из бинарного файла, файл всё равно...

проверка правильно ли логинится пользователь, что неправильно
&lt;?php require_once('header.php'); require_once ('bd.php'); ...

6
Mr.kto
96 / 97 / 18
Регистрация: 18.08.2012
Сообщений: 308
15.04.2012, 21:39 2
Функция, проверяющая, является ли текстовый файл пустым
0
Kirill Losev
3 / 3 / 2
Регистрация: 01.10.2011
Сообщений: 249
15.04.2012, 22:04  [ТС] 3
Mr.kto, это полезно, но у меня не пустой файл, да и не в файле уже дело так то
0
Mr.kto
96 / 97 / 18
Регистрация: 18.08.2012
Сообщений: 308
15.04.2012, 22:08 4
Kirill Losev, ну твоя проверка на поиск по логике правильная!
0
Kirill Losev
3 / 3 / 2
Регистрация: 01.10.2011
Сообщений: 249
15.04.2012, 23:01  [ТС] 5
Mr.kto, осталось понять отчего "... fault"
0
Nekto
342 / 287 / 37
Регистрация: 23.03.2012
Сообщений: 838
15.04.2012, 23:03 6
Попробуй промежуточную переменную использовать.
1
Kirill Losev
3 / 3 / 2
Регистрация: 01.10.2011
Сообщений: 249
16.04.2012, 01:25  [ТС] 7
Nekto, спасибо. сейчас попробую.
кстати, это может зависеть от выбора ОС для программирования?
сейчас пользуюсь линуксом, под виндой на виртуалке попробовал облегченную версию с этой проблемой:
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
#include <iostream>
#include <cstring>
using namespace std;
 
int main()
{
    int index = 0;
    char saver;
    char text[] = "ksjfhwliufgliwuegf dsklfuhlsdk";
    setlocale(LC_ALL, "RUS");
    while(1)
    {
        char *proc = strstr(text, " ");
        if(proc == NULL)
        {
            cout << "proc is NULL" << endl;
            break;
        }
        int len_proc = strlen(proc);
        int len_text = strlen(text);
        index = len_text - len_proc;
        saver = text[index];
        text[index] = '*';
    }
    text[index] = saver;
    cout << "строка: " << text << endl;
}
тут работает.
сейчас попробую этот же код на линуксе запустить, посмотрим что получится
Спасибо за внимание!

Добавлено через 1 минуту
На линухе тоже работает. Буду искать.

Добавлено через 8 минут
Все, проблему нашел.
У меня в коде
C++
1
2
3
4
5
6
7
8
.....
proc = strstr(proc, slovo);
if(proc == NULL)
{
  log << "proc is NULL\n";
  break;
}
.....
между строками
C++
1
2
3
.....
proc .....//и
if.....
стояла строка
C++
1
2
3
.....
log << "proc: " << proc << "_" << endl;
.....
то есть было так:
C++
1
2
3
4
5
6
7
8
9
10
.....
.....
proc = strstr(proc, slovo);
log << "proc: " << proc << "_" << endl;
if(proc == NULL)
{
  log << "proc is NULL\n";
  break;
}
.....
Когда proc == NULL, то программа, видимо, не может ничего вывести и аварийно завершалась.
Сейчас убрал строку
C++
1
2
3
.....
log << "proc: " << proc << "_" << endl;
.....
после if и выход из цикла проходит нормально. Прошу прощения, что ввел вас в заблуждение.
Но "Segmentation fault" выходит на этом участке кода:
C++
1
2
3
4
5
6
7
8
9
.....
while(1)
{
    int searcher = strcspn(s_mark.mark, "*");
    if(searcher == 0)
        break;
    s_mark.mark[searcher] = saver;
}
.....
Тут все ли грамотно?
Заранее спасибо!

Добавлено через 2 часа 3 минуты
люди, ау!
0
16.04.2012, 01:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.04.2012, 01:25

Поиск слов в документах. Проверка что ничего не найдено.
using System; using System.Collections.Generic; using System.ComponentModel;...

Как проверить, что выбранный диапазон ячеек пуст
Такой вопрос: есть такой код: Dim r As Range With...

Как определить, что к Dbgrid не подключен DataSet или он пуст?
Здравствуйте! Подскажите, пожалуйста, каким образом можно реализовать...


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

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

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