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

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

Войти
Регистрация
Восстановить пароль
 
Dady
2 / 2 / 0
Регистрация: 20.03.2012
Сообщений: 53
#1

Ошибка в коде - C++

25.06.2012, 15:18. Просмотров 481. Ответов 11
Метки нет (Все метки)

Почему программа не открывает указанный файл? Кто знает, помогите!


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
#include "stdafx.h"
#include <iostream> 
#include <fstream> 
using namespace std; 
int main() 
{   setlocale(LC_ALL,"Russian"); 
    char s[256];
    FILE *Text;
    cin>>s;
    Text = fopen ( "d:\\Text.txt" , "rb" );
if (Text==NULL)
{
printf("He удается открыть файл.\n");
exit(1);
}           
    size_t const n=(sizeof(Text));
    char buffer[n]; 
    char str[10]; 
    cout << "Введите последовательность символов ( вводим на английском ) "; 
    cin >> str;        
    while(buffer[n]=fgetc(Text)!=EOF)
        {        
            if(strstr(buffer,str) != NULL)  // strstr возвращает указатель
            {
              cout << "Совпадение обнаружено " << str << endl;         
            } else
            { cout << "Совпадений нет"<< endl;}
        }
        
        system("Pause"); 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.06.2012, 15:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка в коде (C++):

Ошибка в коде (Ошибка сегментирования (core dumped) - C++
Добрый день. Подскажите пожалуйста, где ошибка в коде? char ch; string s; while ((ch = cin.get()) != '0' ) ...

В чём ошибка.В коде там где коментарий там ошибка поучается. - C++
#include &lt;iostream&gt; #include &lt;Windows.h&gt; using namespace std; class CMyString{ char *pStr; public: ...

Ошибка в коде - C++
Прветствую всех! printf(&quot;Введите расположение файла (например: C:\\myfile.txt):/n&quot;); char * s; scanf(&quot;%s&quot;, &amp;s); FILE * doc;...

Ошибка в коде - C++
Ребят,подскажите пожалуйста...работаю на Visual Studio 2010...и выдает такие ошибки: 1)error LNK2019: ссылка на неразрешенный внешний...

Ошибка в коде - C++
#include &lt;iostream&gt; #include &lt;string&gt; #include &lt;time.h&gt; #include &lt;cstdlib&gt; using namespace std; class base{ public: ...

Ошибка в коде - C++
Подскажите почему у меня vs выдает ошибку... #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;iostream&gt; #include &lt;stdlib.h&gt; ...

11
Catstail
Модератор
22639 / 11008 / 1785
Регистрация: 12.02.2012
Сообщений: 18,170
25.06.2012, 15:26 #2
А файл существует?
1
Dady
2 / 2 / 0
Регистрация: 20.03.2012
Сообщений: 53
25.06.2012, 15:30  [ТС] #3
Цитата Сообщение от Catstail Посмотреть сообщение
А файл существует?
Да, файл по указанному адресу существует. Моя программа должна находить какую-нибудь последовательность в этом файле. Если файл не успешено открыт, то функция возвращает ноль и выводится сообщение: He удается открыть файл. Я ввожу другие несуществующие названия и всё равно не выводится сообщение! Не знаете в чём дело?
0
Catstail
Модератор
22639 / 11008 / 1785
Регистрация: 12.02.2012
Сообщений: 18,170
25.06.2012, 15:34 #4
Цитата Сообщение от Dady Посмотреть сообщение
Если файл не успешено открыт, то функция возвращает ноль
но в коде написано:

Цитата Сообщение от Dady Посмотреть сообщение
if (Text==NULL) { printf("He удается открыть файл.\n"); exit(1); }
т.е. возвращает 1.

Если файл не удается открыть - программа выдает сообщение и завершается. В твоем случае это так? Или программа чего-то спрашивает?
1
Dady
2 / 2 / 0
Регистрация: 20.03.2012
Сообщений: 53
25.06.2012, 15:39  [ТС] #5
Цитата Сообщение от Catstail Посмотреть сообщение
Если файл не удается открыть - программа выдает сообщение и завершается. В твоем случае это так? Или программа чего-то спрашивает?
Сейчас поменял на строку:
C++
1
if (Text!=NULL)
И при любом вводе выходит сообщение: He удается открыть файл.
0
Catstail
Модератор
22639 / 11008 / 1785
Регистрация: 12.02.2012
Сообщений: 18,170
25.06.2012, 15:48 #6
Это if (Text!=NULL) ты зря. Должно быть: if (Text == NULL)[/B]

Я загрузил твой код в VC6.0 - файл (если он есть!) успешно открывается. Проверь правильность имен. А может файл держит какой-либо процесс?
1
Dady
2 / 2 / 0
Регистрация: 20.03.2012
Сообщений: 53
25.06.2012, 15:55  [ТС] #7
Цитата Сообщение от Catstail Посмотреть сообщение
Я загрузил твой код в VC6.0 - файл (если он есть!) успешно открывается. Проверь правильность имен. А может файл держит какой-либо процесс?
А если вы вводите несуществующее название, у вас вылазеет сообщение: He удается открыть файл.
Запишите, пожалуйста, строчку на английском: qwertyuiop в файл.А потом запустите программу и в консоли после слов "Введите последовательность символов ( вводим на английском ) " введите например erty(она входит в последовательность из файловой строчки). Выведет ли он сообщение об обнаружении совпадения. Заранее благодарю
0
Catstail
Модератор
22639 / 11008 / 1785
Регистрация: 12.02.2012
Сообщений: 18,170
25.06.2012, 16:13 #8
Вот это работает:

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
#include "stdio.h"
#include "iostream.h"
#include "string.h"
 
int main(int argc, char* argv[])
{
 
    FILE *Text;
 
    Text = fopen ( "d:\\text.txt" , "r" );
 
    if (Text==NULL)
    {
       printf("He ГіГ¤Г*ГҐГІГ±Гї îòêðûòü ГґГ*éë.\n");
       return 1;
    }           
 
    char buffer[512]; 
    char str[10]; 
 
    cout << "Insert string "; 
    cin >> str;        
    
    while (fscanf(Text,"%s",buffer) != EOF)
    {
        if (strstr(buffer,str) != NULL)
        {
            cout << "Found!";
            break;
        }
                for (int i=0; i < 512; i++) buffer[i]=0;
    }
 
    fclose(Text);
    
    return 0;
}
0
Dady
2 / 2 / 0
Регистрация: 20.03.2012
Сообщений: 53
25.06.2012, 16:27  [ТС] #9
Цитата Сообщение от Catstail Посмотреть сообщение
Вот это работает:
А вы вкакой среде работаете?
0
Catstail
Модератор
22639 / 11008 / 1785
Регистрация: 12.02.2012
Сообщений: 18,170
25.06.2012, 16:28 #10
Visual C++ 6.0
0
Dady
2 / 2 / 0
Регистрация: 20.03.2012
Сообщений: 53
25.06.2012, 16:34  [ТС] #11
Цитата Сообщение от Catstail Посмотреть сообщение
Visual C++ 6.0
А я работаю в VS 2010. Запускаю вашу программу и появляется сразу сообщение: He удается открыть файл. Что может быть?
0
Catstail
Модератор
22639 / 11008 / 1785
Регистрация: 12.02.2012
Сообщений: 18,170
25.06.2012, 16:51 #12
Отсутствие файла или диска d:. Попробуй изменить имя файла Text.txt -> Qext.txt. Что-нибудь изменится?
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.06.2012, 16:51
Привет! Вот еще темы с ответами:

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

Ошибка в коде - C++
Создать класс “Поликлиника”, состоящей из класса ”Врач”. Класс “Поликлиника”: номер поликлиники, фамилия заведующей, телефон...

Ошибка в коде - C++
FOR( 0, c_obj ){ if( !objs-&gt;a ){ int j = 0; while( species-&gt;action != 0 &amp;&amp; j &lt; c_species - 1 ){ j++; } if(...

Ошибка в коде - C++
Задание звучит так : Дан двумерный массив размера 3x4. Найти максимальный элемент во второй строке. Вывести на экран максимальный элемент и...


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

Или воспользуйтесь поиском по форуму:
12
Yandex
Объявления
25.06.2012, 16:51
Ответ Создать тему
Опции темы

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