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

C++ не работает программа - C++

Восстановить пароль Регистрация
 
Parmaster
0 / 0 / 0
Регистрация: 05.04.2012
Сообщений: 35
05.04.2012, 21:40     C++ не работает программа #1
Программа должна сравнивать последний символ строки с введённым, и если они совпадут счетчик++, но на scanf она почему то виснет, тоесть после предложения ввести букву, ничего не происходит (( помогите пожалуйста!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "stdafx.h"
#include "io.h"
#include <string.h>
#include "iostream"
using namespace std;
 
 
char s[256];
int main(){
    freopen("test.txt","r",stdin);
    int c=0;
    char ch(1);
    printf("Vvedite simvol\n");
    scanf("%d", &ch);
    while (!std::feof(stdin))
    {
        std::cin.getline(s,80);
        if (ch==s[strlen(s)-1]) c++;
    }
    std::cout << c;
        return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.04.2012, 21:40     C++ не работает программа
Посмотрите здесь:

C++ Не работает программа
C++ Программа не работает
Не работает программа C++
Программа работает на Windows 7, но не работает на XP C++
C++ Не работает программа
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Avazart
 Аватар для Avazart
6893 / 5133 / 250
Регистрация: 10.12.2010
Сообщений: 22,560
Записей в блоге: 17
05.04.2012, 21:43     C++ не работает программа #2
Пробуй
scanf("%s", &ch);
Parmaster
0 / 0 / 0
Регистрация: 05.04.2012
Сообщений: 35
05.04.2012, 21:46  [ТС]     C++ не работает программа #3
Всё равно, что бы я не нажал ( цифру или букву, на любой раскладке ) в программе - 0 реакции. Может поточный ввод попробовать??
Avazart
 Аватар для Avazart
6893 / 5133 / 250
Регистрация: 10.12.2010
Сообщений: 22,560
Записей в блоге: 17
05.04.2012, 21:50     C++ не работает программа #4
C++
1
2
char ch;
std::cin.get(ch);
И возможно

C++
1
scanf("%s",ch);
Parmaster
0 / 0 / 0
Регистрация: 05.04.2012
Сообщений: 35
05.04.2012, 22:02  [ТС]     C++ не работает программа #5
Никакой ввод не работает :-( ни поточный ни обычный, вообще программа не ожидает ввода, не пойму почему??
Avazart
 Аватар для Avazart
6893 / 5133 / 250
Регистрация: 10.12.2010
Сообщений: 22,560
Записей в блоге: 17
05.04.2012, 22:09     C++ не работает программа #6
Возможно проблемы с
C++
1
freopen("test.txt","r",stdin);
может к примеру
C++
1
freopen("test.txt","w",stdin);
Parmaster
0 / 0 / 0
Регистрация: 05.04.2012
Сообщений: 35
05.04.2012, 22:11  [ТС]     C++ не работает программа #7
Исправил, теперь бесконечный ввод символа ch:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "stdafx.h"
#include "io.h"
#include <string.h>
#include "iostream"
using namespace std;
 
 
 
int main(){
    FILE *fp;
    fp=fopen("test.txt","w");
    char s[256],ch;
    int c=0;
    cout << "Vvedite simvol" << endl;
    cin.get(ch);
    while (!std::feof(stdin))
    {
        std::cin.getline(s,80);
        if (s[strlen(s)-1]=='ch') c++;
    }
        cout << c;
        return 0;
}
Avazart
 Аватар для Avazart
6893 / 5133 / 250
Регистрация: 10.12.2010
Сообщений: 22,560
Записей в блоге: 17
05.04.2012, 22:20     C++ не работает программа #8
Так все таки fopen или freopen ?
Parmaster
0 / 0 / 0
Регистрация: 05.04.2012
Сообщений: 35
05.04.2012, 22:39  [ТС]     C++ не работает программа #9
Тут то и загвоздка, мне нужен параметр stdin, а он имеет место только в freopen, когда freopen я не могу ввести символ, вот и загвоздка такая получается, не знаю что делать (
Avazart
 Аватар для Avazart
6893 / 5133 / 250
Регистрация: 10.12.2010
Сообщений: 22,560
Записей в блоге: 17
05.04.2012, 22:43     C++ не работает программа #10
А без этой строки работает?
Parmaster
0 / 0 / 0
Регистрация: 05.04.2012
Сообщений: 35
05.04.2012, 22:47  [ТС]     C++ не работает программа #11
Если написать fopen то он принимает только два значения - имя файла и тип открытия. Но там после ввод символа в бесконечном цикле зависат
Avazart
 Аватар для Avazart
6893 / 5133 / 250
Регистрация: 10.12.2010
Сообщений: 22,560
Записей в блоге: 17
05.04.2012, 23:24     C++ не работает программа #12
Ну конструкция
C++
1
2
3
4
5
6
7
8
9
10
11
int _tmain(int argc, _TCHAR* argv[])
{
if (freopen("test.txt", "w", stdout)== NULL)
      fprintf(stderr, "error redirecting stdout\n");
 
    printf("Vvedite simvol\n");
 
system("pause");
fclose(stdout);
return 0;
}
как-то работает - записывает файл "Vvedite simvol",
но ввод с клавиатуры видиму попросту не предусмотрен
Я если честно я теперь не представляю как вообще должна работать?
Parmaster
0 / 0 / 0
Регистрация: 05.04.2012
Сообщений: 35
05.04.2012, 23:40  [ТС]     C++ не работает программа #13
Открываю текстовый файл с данными, ввожу символ с клавиатуры, сравниваю его с последним символом каждой строчки, если совпадает, то счетчик++, в противном случае идем далее.
Avazart
 Аватар для Avazart
6893 / 5133 / 250
Регистрация: 10.12.2010
Сообщений: 22,560
Записей в блоге: 17
05.04.2012, 23:46     C++ не работает программа #14
так зачем тогда изощрения с freopen ???
открывай ifstream -мом
Parmaster
0 / 0 / 0
Регистрация: 05.04.2012
Сообщений: 35
05.04.2012, 23:52  [ТС]     C++ не работает программа #15
в том то и фишка что поток нельзя использовать :-( да я чесно говоря и не умею..
Avazart
 Аватар для Avazart
6893 / 5133 / 250
Регистрация: 10.12.2010
Сообщений: 22,560
Записей в блоге: 17
06.04.2012, 00:08     C++ не работает программа #16
fopen тоже нельзя?
baboo
3 / 3 / 1
Регистрация: 05.04.2012
Сообщений: 9
06.04.2012, 00:13     C++ не работает программа #17
Цитата Сообщение от Parmaster Посмотреть сообщение
scanf("%d", &ch);
[/CPP]
C
1
     scanf("%c", &ch);
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
06.04.2012, 00:14     C++ не работает программа #18
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <cstdio>
#include <cstring>
#include <conio.h>
int main(){
    FILE *f=fopen("input.txt","r");
    char c;
    printf("Vvedite simvol\n");
    c=getchar();
    char s[255];
    int count=0;
    while (fscanf(f,"%s",s)!=EOF)
    {
     if (c==s[strlen(s)-1]) count++;
    }
    printf("\nCount=%d",count);
    getch();
    fclose(f);
    return 0;
}
Parmaster
0 / 0 / 0
Регистрация: 05.04.2012
Сообщений: 35
06.04.2012, 00:50  [ТС]     C++ не работает программа #19
Спасибо, работает!
Только вместо getch(); getchar(); и добавить #include <string> и stdafx.h
Работает, но не считает. Возможно
if (c==s[strlen(s)-1]) count++; изменить на
if (s[strlen(s)-1] == 'c') count++;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.04.2012, 11:17     C++ не работает программа
Еще ссылки по теме:

C++ Программа при релизе не работает, а при дебаге работает
C++ программа не работает =(
Не работает программа C++

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

Или воспользуйтесь поиском по форуму:
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
06.04.2012, 11:17     C++ не работает программа #20
Цитата Сообщение от Parmaster Посмотреть сообщение
Спасибо, работает!
Только вместо getch(); getchar(); и добавить #include <string> и stdafx.h
Работает, но не считает. Возможно
if (c==s[strlen(s)-1]) count++; изменить на
if (s[strlen(s)-1] == 'c') count++;
Код
Vvedite simvol
a

Count=4
input.txt
Код
ghfduihguifdhgfdhgiufdii
fhdsifhudishfiediowtoooo
fdhsofhoidshfoiahfoiaoa
fdsoifhoidshpo4
fdhsofhoidshfoiahfoiaoa
fdhsofhoidshfoiahfoiaoa
fdhsofhoidshfoiahfoiaoa
Добавлено через 20 минут
Так проверяет посимвольно. Запоминает предыдущий символ. Если текущий - конец строки или конец файла, проверяет предыдущий с введённым.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <cstdio>
#include <cstring>
#include <conio.h>
int main()
{
 FILE *f=fopen("input.txt","r");
 char c;
 printf("Vvedite simvol\n");
 c=getchar();
 char c1,c2;
 int count=0;
 c1=fgetc(f);
 while (!feof(f))
  {
   c2=fgetc(f);
   if ((c2=='\n' || c2==EOF) && c1==c) count++;
   c1=c2;
  }
 printf("\nCount=%d",count);
 getch();
 fclose(f);
 return 0;
}
Yandex
Объявления
06.04.2012, 11:17     C++ не работает программа
Ответ Создать тему
Опции темы

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