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

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

Войти
Регистрация
Восстановить пароль
 
 
Parmaster
0 / 0 / 0
Регистрация: 05.04.2012
Сообщений: 35
#1

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

05.04.2012, 21:40. Просмотров 756. Ответов 19
Метки нет (Все метки)

Программа должна сравнивать последний символ строки с введённым, и если они совпадут счетчик++, но на 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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.04.2012, 21:40
Я подобрал для вас темы с готовыми решениями и ответами на вопрос C++ не работает программа (C++):

Почему программа не работает на MFC статичной библиотеки. а вот на стандартном мфс работает - C++
почему программа не работает на MFC статичной библиотеки. а вот на стандартном мфс работает. Имею в ввиду что сделал прогу которая меняет...

Программа , которая выводит время, за которое программа работает - C++
Вообщем, нужно что бы считалось время от начала работы программы, и выводилось на экран.

Программа работает в турбо си но не работает в дев си - C++
#include&lt;graphics.h&gt; #include&lt;stdio.h&gt; #include&lt;conio.h&gt; #include&lt;math.h&gt; #include&lt;dos.h&gt; #define R &quot;C:\\TC\\bgi&quot; void...

Программа работает на Windows 7, но не работает на XP - C++
#include &lt;locale&gt; #include &lt;windows.h&gt; #include &lt;iostream&gt; #include &lt;fstream&gt; int main () { std::string wont; size_t i; ...

Программа при релизе не работает, а при дебаге работает - C++
#include&lt;iostream&gt;; #include &lt;iomanip&gt; #include&lt;fstream&gt; using namespace std; void printMatrix (int **a, int n, int m) // функція...

Не работает программа - C++
#include &quot;stdafx.h&quot; #include &lt;conio.h&gt; #include &lt;stdio.h&gt; #include &lt;string.h&gt; int main() { char s; /* буфер...

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

C++
1
scanf("%s",ch);
0
Parmaster
0 / 0 / 0
Регистрация: 05.04.2012
Сообщений: 35
05.04.2012, 22:02  [ТС] #5
Никакой ввод не работает :-( ни поточный ни обычный, вообще программа не ожидает ввода, не пойму почему??
0
Avazart
Эксперт С++
7574 / 5559 / 327
Регистрация: 10.12.2010
Сообщений: 24,934
Записей в блоге: 17
05.04.2012, 22:09 #6
Возможно проблемы с
C++
1
freopen("test.txt","r",stdin);
может к примеру
C++
1
freopen("test.txt","w",stdin);
0
Parmaster
0 / 0 / 0
Регистрация: 05.04.2012
Сообщений: 35
05.04.2012, 22:11  [ТС] #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;
}
0
Avazart
Эксперт С++
7574 / 5559 / 327
Регистрация: 10.12.2010
Сообщений: 24,934
Записей в блоге: 17
05.04.2012, 22:20 #8
Так все таки fopen или freopen ?
0
Parmaster
0 / 0 / 0
Регистрация: 05.04.2012
Сообщений: 35
05.04.2012, 22:39  [ТС] #9
Тут то и загвоздка, мне нужен параметр stdin, а он имеет место только в freopen, когда freopen я не могу ввести символ, вот и загвоздка такая получается, не знаю что делать (
0
Avazart
Эксперт С++
7574 / 5559 / 327
Регистрация: 10.12.2010
Сообщений: 24,934
Записей в блоге: 17
05.04.2012, 22:43 #10
А без этой строки работает?
0
Parmaster
0 / 0 / 0
Регистрация: 05.04.2012
Сообщений: 35
05.04.2012, 22:47  [ТС] #11
Если написать fopen то он принимает только два значения - имя файла и тип открытия. Но там после ввод символа в бесконечном цикле зависат
0
Avazart
Эксперт С++
7574 / 5559 / 327
Регистрация: 10.12.2010
Сообщений: 24,934
Записей в блоге: 17
05.04.2012, 23:24 #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",
но ввод с клавиатуры видиму попросту не предусмотрен
Я если честно я теперь не представляю как вообще должна работать?
0
Parmaster
0 / 0 / 0
Регистрация: 05.04.2012
Сообщений: 35
05.04.2012, 23:40  [ТС] #13
Открываю текстовый файл с данными, ввожу символ с клавиатуры, сравниваю его с последним символом каждой строчки, если совпадает, то счетчик++, в противном случае идем далее.
0
Avazart
Эксперт С++
7574 / 5559 / 327
Регистрация: 10.12.2010
Сообщений: 24,934
Записей в блоге: 17
05.04.2012, 23:46 #14
так зачем тогда изощрения с freopen ???
открывай ifstream -мом
0
Parmaster
0 / 0 / 0
Регистрация: 05.04.2012
Сообщений: 35
05.04.2012, 23:52  [ТС] #15
в том то и фишка что поток нельзя использовать :-( да я чесно говоря и не умею..
0
05.04.2012, 23:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.04.2012, 23:52
Привет! Вот еще темы с ответами:

не работает программа - C++
#include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;math.h&gt; int main() { int n,l,k; float s,eps,an,x; printf(&quot;Vvedite...

Не работает программа - C++
Код взят из книжки по С++. В Visual C++ этот код не пашет. Выдает проглеммы с подключением библиотек. Проблемма в коде или в...

программа не работает.. - C++
путем перестановки квадратной веществ. матрицы добиться того, чтобы максимальный элемент находился в левом верхнем углу, следующий по...

Не работает программа - C++
Используя массив типа структура (с 6-10 элементов) составить программу, с помощью которой можно ввести в память компьютера данные из...


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

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

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