Модераторы: Poseidon

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [С++] Ошибки кернель и нт длл библиотек, Прога по поиску подстроки не пашет 
V
    Опции темы
ДобренькийПапаша
Дата 30.1.2006, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

Репутация: нет
Всего: 7



Я сделал файл по адресу С:\MyName.txt, где содержится строка (без пробелов) -MyNameIlyaMyLastNameFofanov, прога должна найти слово, которое я ввожу и вывести его, если оно встречается в этом файле.
Вот исходный код:
Код

#include <iostream.h>
#include <iostream>
#include <fstream.h>
#include <string.h>
int main()
{
    const int len = 50;
    char word[len], line[len];
    cout << "Enter the word for searching: "; 
    cin >> word;

    ifstream fin("C:\\MyName.txt", ios::in | ios::nocreate);
    if(!fin) 
    {
        std::cout << "Invalid filename." << endl;
        return 1;
    }

    while (fin.getline(line, len))
    {
        if (strstr(line, word))
        {
            std::cout << "This word presented here!" << endl;
            return 0;
            getchar();
        }
    }
    std::cout << "This word absenced here!" << endl;
    return 0;
    getchar();
}

Loaded 'ntdll.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\kernel32.dll', no matching symbolic information found.
The thread 0x9C has exited with code 1 (0x1).
The program 'C:\Программы для учёбы\Visual C++\MSDev98\MyProjects\Searching a substring\Debug\Searching a substring.exe' has exited with code 1 (0x1).
Эта ошибка у меня возникает в каждой проге. В большинстве случаев обходится подключением препроца <iostream> и команды getchar();
Но это уже достало, объясните в чём причина этих ошибок,пожалуйста, и как их обойти.
Связано ли это с компилятором или с ОС? Без понятия. Жду ответов.


--------------------
Меня зовут Себастьян Парейра, торговец чёрным деревом.
PM MAIL   Вверх
Fixin
Дата 30.1.2006, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ёжик
***


Профиль
Группа: Комодератор
Сообщений: 1357
Регистрация: 6.1.2004

Репутация: 5
Всего: 18



Ну, на кернел не ругайся. Сюдя по коду, н "1" возвращает в результате оибки открытия входноо файла. И перед выходом из проги нужно закывть поток ввода.
PM MAIL ICQ   Вверх
ДобренькийПапаша
Дата 30.1.2006, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

Репутация: нет
Всего: 7



Да не всё так просто. Напиши как правильно, в коде моём чёнить измени, я ж говорю эта ошибка во всех моих прогах возникает, она обходится, но в этот раз упрямится как коза.
Не получается ничего smile
Переписал, что функция везде нуль возвращает фсё равно не помогает.

Это сообщение отредактировал(а) ДобренькийПапаша - 30.1.2006, 14:58


--------------------
Меня зовут Себастьян Парейра, торговец чёрным деревом.
PM MAIL   Вверх
BreakPointMAN
Дата 30.1.2006, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 15.9.2004
Где: Saratov

Репутация: 2
Всего: 24



ДобренькийПапаша, во-первых, с какого перепуга у тебя написано такое безобразие:
Код

#include <iostream.h>
#include <iostream>
#include <fstream.h>
#include <string.h>

?
Ты, вообще, представляешь себе, что такое директива препроцессора #include, пространства имен, std?

Во-вторых, getchar'ы у тебя расположены в таких местах, что им не когда не будет передано управление: после операторов return!..

В-третьих, Fixin правильно говорит, потоки следует закрывать...

В-четвертых, а уверен ли ты, что файл "C:\\MyName.txt" действительно существует? Текстовый ли он? А достаточно ли отведено места под буфер, в которую считывается строка?

В-пятых, лучше всего проекты, исходники и exe'шники хранить в более "удобоваримых" местах - папках без длинных имен, пробелов и русских букв.



--------------------
"Разруха не в клозетах, а в головах." © Ф.Ф. Преображенский (М.Булгаков, "Собачье сердце")
PM WWW ICQ   Вверх
ДобренькийПапаша
Дата 30.1.2006, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

Репутация: нет
Всего: 7



Файл существует, памяти выделено достаточно, даже более чем.
Итак, спасибо, я подправил прогу, запускается, ошибка в следующем: Я сделал контрольный вывод считываемой строки из файла после while. Выяснилось, что считывается не предложение, мною написанное в файле (вот это предложение : MyNameIlyaMyLastNameFofanov), а считывается квадратик и две русские буквы. В чём проблема?
з.ы. Что значит закрой поток и как это сделать (я ж тока учусь, простите, понимаю но приблизительно)


--------------------
Меня зовут Себастьян Парейра, торговец чёрным деревом.
PM MAIL   Вверх
Fixin
Дата 30.1.2006, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ёжик
***


Профиль
Группа: Комодератор
Сообщений: 1357
Регистрация: 6.1.2004

Репутация: 5
Всего: 18



Цитата(BreakPointMAN @ 30.1.2006, 16:21 Найти цитируемый пост)

Ты, вообще, представляешь себе, что такое директива препроцессора #include, пространства имен, std?
Не орать! У него студия 98-я, я ее не видел, но думаю, там еще старый стандарт катируется. компилится же эта прога.

PM MAIL ICQ   Вверх
ДобренькийПапаша
Дата 30.1.2006, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

Репутация: нет
Всего: 7



Код

#include <iostream.h>
#include <iostream>
void main()
{
    const int len = 100;
    char word[len];
    char line[len]="MyNameIlyaMyLastNameFofanov";
    cout << "Enter the word for searching: "; 
    cin >> word;
    cout << word << endl;
    cout << line <<endl;

    
        if (strstr(line, word))
        {
            std::cout << "Prisutstvuet!";
        
        }
    
    
    else std::cout << "Otsutstvuet!";
    
    getchar();
}


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


--------------------
Меня зовут Себастьян Парейра, торговец чёрным деревом.
PM MAIL   Вверх
Fixin
Дата 30.1.2006, 18:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ёжик
***


Профиль
Группа: Комодератор
Сообщений: 1357
Регистрация: 6.1.2004

Репутация: 5
Всего: 18



Код

#include <iostream>    
#include <fstream>    
#include <string.h>    

using namespace std;

int main()    
{    
    const int len = 50;    
    char word[len], line[len];    
    cout << "Enter the word for searching: ";    
    cin >> word;    
    ifstream fin("C:\\MyName.txt");    
    if(!fin)    
    {    
        cout << "Invalid filename." << endl;    
        return 1;    
    }        
    while (fin.getline(line, len))    
    {    
        if (strstr(line, word))    
        {    
            cout << "This word presented here!" << endl;        
            cin >> word;
            fin.close();
            return 0;             
        }    
    }
    fin.close();
    cout << "This word absenced here!" << endl;        
    cin >> word;    
    return 0;    
}
У меня все работает. ТОлько студия у маня нетовская, потому код отличается

Это сообщение отредактировал(а) Fixin - 31.1.2006, 13:31
PM MAIL ICQ   Вверх
BreakPointMAN
Дата 30.1.2006, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 15.9.2004
Где: Saratov

Репутация: 2
Всего: 24



Fixin, а кто здесь орет? Или ты, может быть, считаешь, что следующий код является образцом для подражания?
Код

#include <iostream.h>
#include <iostream>



--------------------
"Разруха не в клозетах, а в головах." © Ф.Ф. Преображенский (М.Булгаков, "Собачье сердце")
PM WWW ICQ   Вверх
ДобренькийПапаша
Дата 30.1.2006, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

Репутация: нет
Всего: 7



БрейкПоинт: Слухай, объясни мне, плиз, почему так нельзя делать? Желательно по-подробней, если не занят.


--------------------
Меня зовут Себастьян Парейра, торговец чёрным деревом.
PM MAIL   Вверх
Fixin
Дата 30.1.2006, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ёжик
***


Профиль
Группа: Комодератор
Сообщений: 1357
Регистрация: 6.1.2004

Репутация: 5
Всего: 18



Цитата(ДобренькийПапаша @ 30.1.2006, 18:27 Найти цитируемый пост)

БрейкПоинт: Слухай, объясни мне, плиз, почему так нельзя делать? Желательно по-подробней, если не занят.

ну, я лично не знаю. у меня просто студия такого не допукает, и я и не пишу так smile
PM MAIL ICQ   Вверх
ДобренькийПапаша
Дата 30.1.2006, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

Репутация: нет
Всего: 7



А какую студию лучше всего поставить?


--------------------
Меня зовут Себастьян Парейра, торговец чёрным деревом.
PM MAIL   Вверх
Fixin
Дата 30.1.2006, 19:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ёжик
***


Профиль
Группа: Комодератор
Сообщений: 1357
Регистрация: 6.1.2004

Репутация: 5
Всего: 18



по потребностям smile если определенных потребностей нет, ставь самую модерновую, какую найдешь. первое время - сложно пивыкать будешь.

Цитата(Правила раздела)

Помни: один топик - один вопрос!

Не оффтопить!
PM MAIL ICQ   Вверх
Exception
Дата 30.1.2006, 20:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: нет
Всего: 186




 ! 
Exception
Давайте не будем переходить на личности.
По сабжу: в том, что он что-то пишет про kernel32.dll, нет ошибки. Он пишет, что не найдены отладочные файлы для них, это так и должно быть smile .
PM   Вверх
Fixin
Дата 30.1.2006, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ёжик
***


Профиль
Группа: Комодератор
Сообщений: 1357
Регистрация: 6.1.2004

Репутация: 5
Всего: 18



Цитата(Exception @ 30.1.2006, 20:28 Найти цитируемый пост)

Он пишет, что не найдены отладочные файлы для них
Ты откуда это взял?


PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0767 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.