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

Ошибок не выдает, но не работает - C++

Восстановить пароль Регистрация
 
AzgardC
7 / 7 / 0
Регистрация: 18.10.2012
Сообщений: 81
19.11.2012, 15:13     Ошибок не выдает, но не работает #1
Всем привет. Написал программу для для определения в каком предложении в файле впервые встретилось введенное слово. При компиляции ошибок не выдало, но после того как ввожу искомое слово и нажимаю Enter ничего не происходит. Еще после нескольких нажатий ентера, программа закрывается.
Пожалуйста, подскажите что не так! Буду очень благодарен!
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
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <conio.h>
#include <string.h>
 
int main(void){
FILE *fid;
char ch, p[10], y[251];
 
int i=1,j=0,o,h,k,c;
 
 
if ((fid = fopen("D:\\data1.txt", "w")) == NULL)
       {printf("\n\t The file could not be opened.\n ");
printf("\n Press any key: "); _getch(); return -1;}
 
while ((ch = getchar()) != '\n')
{ printf(" "); fputc(ch, fid);}
fclose(fid);
 
printf("\n Vvedite slovo: ");
gets_s(p, 9);
h=strlen(p);
 
if ((fid = fopen("D:\\data1.txt", "r")) == NULL)
       {printf("\n\t The file could not be opened.\n ");
printf("\n Press any key: "); _getch(); return -1;}  
 
while (!feof(fid))
{
y[j]= fgetc(fid);
j++;
}
o=strlen(y);
for(j=0; j<o; j++){
    k=0;
    if(y[j]=='.')i++;
    if(y[j]==p[0])
        for(c=j; c<(j+h);j++){
            if(y[c]==p[k])continue;break;
            k++;
        }
    if(k==h)printf("\n Slovo v %i predlozhenii.", i);
    }
 
 
fclose(fid);
 
printf("\n Press any key: ");
_getch();
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2012, 15:13     Ошибок не выдает, но не работает
Посмотрите здесь:

В борланде: работает но выдает Warning. C++
Апроксимация функции с фурье, компилятор ошибок не находит, но программа работает не верно. C++
явных ошибок нету, но программа не работает C++
Ошибок не находит, но не работает! C++
Не работает программа, ошибок компиляции нет. C++
C++ Синтаксических и арифметических ошибок в цикле вроде как нет, но он не работает
Почему C++ выдает Over9000 ошибок при подключение GDI+ C++
ошибок не выводит, но не работает C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Peregrin
33 / 33 / 1
Регистрация: 16.11.2012
Сообщений: 59
19.11.2012, 15:23     Ошибок не выдает, но не работает #2
Вы бы прокомментировали слегка код, а то непонятно вообще, что такое k, h, p и т.д.
На первый взгляд вот тут ошибка:
C++
1
2
3
4
for(c=j; c<(j+h);j++){
            if(y[c]==p[k])continue;break;
            k++;
        }
k++ никогда не вызовется, потому что если y[c]==p[k], то цикл перейдет на следующую итерацию, иначе просто будет выход из цикла.
AzgardC
7 / 7 / 0
Регистрация: 18.10.2012
Сообщений: 81
19.11.2012, 16:57  [ТС]     Ошибок не выдает, но не работает #3
Цитата Сообщение от Peregrin Посмотреть сообщение
k++ никогда не вызовется, потому что если y[c]==p[k], то цикл перейдет на следующую итерацию, иначе просто будет выход из цикла.
Теперь хотя бы пресс эни кей появляется)) Простите что без комментов)
Но все равно результата нет.

Добавлено через 1 час 31 минуту
Кто-нибудь еще знает в чем может быть дело?) Плиз, очень надо!
Yandex
Объявления
19.11.2012, 16:57     Ошибок не выдает, но не работает
Ответ Создать тему
Опции темы

Текущее время: 22:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru