Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
sativan
2 / 2 / 0
Регистрация: 04.01.2017
Сообщений: 73
#1

Некорректно работает консоль при программировании в visual studio

05.03.2017, 21:56. Просмотров 1037. Ответов 24
Метки нет (Все метки)

при запуске консольного приложения в VS сначала программа работает но после изменений кода и возврата к прежнему начинает работать неккоректно, притом ставил VS 2015 и VS2008, все тоже самое,лечится только перезагрузкой компьютера.Подскажите где может быть проблема?

В частности менял например вот это (a&&x>0) на вот это (a||x>0) консоль работала неккоректно,даже когда изменил на начальное состояние.


код программы:
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
#include <windows.h>
#include<stdio.h>
#include<conio.h>
#include<locale.h>
#include<math.h>
#include <fstream>
#include <cmath>
#include <iostream>
#include <stdlib.h>
int main(void)
{
    setlocale(LC_ALL, "RUS");
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    int p1 = 0, p2 = 0;
    double x, y, a, t1, t2;
    printf ( "введите x,y,a>\n" );
    scanf ( "%lf %lf %lf", &x,&y,&a );
    if (a&&x>0)
    {
        t1 = 1/(4 * pow (a, 2.0)) * pow (x, 2.0) + 1/(2 * pow (a, 4.0) * x) + 1/(2 * pow (a, 6.0)) * log (pow (y, 2)/(x));
        printf("t1=%8.3lf\n", t1);
    }
    else { p1 = 1; printf("t1=error\n"); }
    if (sin(a*x) + cos(a*x) > 0&&a 
        )
    {
        t2 = x / 2 + 1 / (2 * a)*log(sin(a*x) + cos(a*x)); printf("t2=%8.3lf\n", t2);
    }
    
    else { p2 = 1; printf("t2-error\n"); }
    if (p1 == 0 && p2 == 0)
     if (t2 == 0)printf("t1/t2-divide by 0\n");
     else printf("t1/t2=%8.3lf\n", t1 / t2);
    else  printf("t1 or t2 not define \n"); 
    getch();
    return 0;
}

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.03.2017, 21:56
Ответы с готовыми решениями:

Работает в Borland Developer Studio 2006 но не работает в Visual Studio 2008, почему?
Вводим строку и меняем в ней первый и последний символы. Всё хорошо в Borland...

В коде возникли ошибки при переходе с Visual studio 2013 на Visual studio 2017
Добрый день, решил попробовать поменять свою 2013 студию на 2017 и заметил...

Visual studio commutity вывод в консоль возвращающего значения
Не выводит return в консоль как решить эту проблему? Вот значит я решаю...

Visual studio 2010 c++ пропадает консоль. не могу найти ошибку
Задача. найти такую расстановку пяти ферзей на шахматной доске, при которой...

Некорректно отображаются русские символы при вводе в консоль
#include &quot;stdafx.h&quot; #include &lt;conio.h&gt; #include &lt;iostream&gt; using...

24
Joey
Модератор
827 / 549 / 218
Регистрация: 05.05.2015
Сообщений: 3,181
Записей в блоге: 1
05.03.2017, 23:44 #2
Цитата Сообщение от sativan Посмотреть сообщение
начинает работать неккоректно
В каком смысле? Запустил Вашу программу, работает нормально, 5-6 раз запускал. В чем выражается некорректность?
0
likehood
930 / 789 / 378
Регистрация: 25.12.2016
Сообщений: 2,627
Завершенные тесты: 3
06.03.2017, 09:18 #3
Цитата Сообщение от sativan Посмотреть сообщение
a&&x>0
Скорее всего имелось в виду a>0 && x>0.
1
sativan
2 / 2 / 0
Регистрация: 04.01.2017
Сообщений: 73
06.03.2017, 14:57  [ТС] #4
неккоректность выражается в том,что при вводе уже первой переменной программа выводит ответ с t2 error, как будто я уже все три ввел,хотя даже переменная та же самая что использовалась раньше и все работало нормально.Лечится перезагрузкой компьютера.Ставил две студии 2015 и 2008 все идентично такая же проблема и так же лечится.Предполагаю что это не ошибка в программе и не бока в среде а где то дальше или ближе не могу понять что за фигня.
0
likehood
930 / 789 / 378
Регистрация: 25.12.2016
Сообщений: 2,627
Завершенные тесты: 3
06.03.2017, 15:09 #5
Попробуй заменить 12 строку на setlocale(LC_CTYPE, "RUS");.
1
sativan
2 / 2 / 0
Регистрация: 04.01.2017
Сообщений: 73
06.03.2017, 17:17  [ТС] #6
поменял не помогло к сожелению
0
nd2
2828 / 2398 / 1054
Регистрация: 29.01.2016
Сообщений: 8,022
06.03.2017, 17:23 #7
Цитата Сообщение от sativan Посмотреть сообщение
неккоректность выражается в том,что при вводе уже первой переменной программа выводит ответ с t2 error,
Что и как вводишь. Скрин покажи.
1
sativan
2 / 2 / 0
Регистрация: 04.01.2017
Сообщений: 73
06.03.2017, 17:52  [ТС] #8
вот скрины когда работает не корректно
0
Миниатюры
Некорректно работает консоль при программировании в visual studio   Некорректно работает консоль при программировании в visual studio   Некорректно работает консоль при программировании в visual studio  

sativan
2 / 2 / 0
Регистрация: 04.01.2017
Сообщений: 73
06.03.2017, 17:54  [ТС] #9
а так должна работать и будет после того как я перезагружу компьютер,а потом если что то в коде поменяю даже не значительное вовсе да и верну сразу назад опять будет та же проблема(
0
Миниатюры
Некорректно работает консоль при программировании в visual studio   Некорректно работает консоль при программировании в visual studio   Некорректно работает консоль при программировании в visual studio  

Некорректно работает консоль при программировании в visual studio   Некорректно работает консоль при программировании в visual studio  
nd2
2828 / 2398 / 1054
Регистрация: 29.01.2016
Сообщений: 8,022
06.03.2017, 17:57 #10
Странные скрины (8 пост). На первом - разделитель точка, и не видно, что происходит после нажатия Enter. На втором - разделитель уже запятая.
1
sativan
2 / 2 / 0
Регистрация: 04.01.2017
Сообщений: 73
06.03.2017, 18:03  [ТС] #11
везде разделитель точка,просто я скрины обрезал,что бы лучше виднее шрифт было.

Добавлено через 2 минуты
хотя да на скрине где выдает ошибку разделитель почему то зпт. он сразу выскакивает как только нажимаешь ентер после ввода первой переменной.
0
nd2
2828 / 2398 / 1054
Регистрация: 29.01.2016
Сообщений: 8,022
06.03.2017, 18:04 #12
Цитата Сообщение от sativan Посмотреть сообщение
везде разделитель точка,
Где же везде? 8 пост, третий скрин (когда ввод ещё двух переменных пропускается) как раз с запятой.

Добавлено через 47 секунд
sativan, какая ОС?
1
sativan
2 / 2 / 0
Регистрация: 04.01.2017
Сообщений: 73
06.03.2017, 18:06  [ТС] #13
да да спасибо тебе заметил,в том то и дело что не вводится еще две переменных а сразу вылетает это(

Добавлено через 51 секунду
может как то раскладка языка влияет

Добавлено через 37 секунд
win 10
0
nd2
2828 / 2398 / 1054
Регистрация: 29.01.2016
Сообщений: 8,022
06.03.2017, 18:10 #14
Лучший ответ Сообщение было отмечено sativan как решение

Решение

Цитата Сообщение от sativan Посмотреть сообщение
win 10
Русскоязычная?
Цитата Сообщение от sativan Посмотреть сообщение
может как то раскладка языка влияет
Я бы убрал из кода это:
C++
1
setlocale(LC_ALL, "RUS");
Для русского ввода-вывода достаточно этого:
C++
1
2
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
(только шрифт, в свойствах консоли, выбрать: Lucida Console).
В качестве разделителя использовать только точку.
1
sativan
2 / 2 / 0
Регистрация: 04.01.2017
Сообщений: 73
06.03.2017, 18:14  [ТС] #15
спасибо сейчас попробую)
0
nd2
2828 / 2398 / 1054
Регистрация: 29.01.2016
Сообщений: 8,022
06.03.2017, 18:17 #16
Цитата Сообщение от sativan Посмотреть сообщение
спасибо сейчас попробую)
ОС русскоязычная?
1
sativan
2 / 2 / 0
Регистрация: 04.01.2017
Сообщений: 73
06.03.2017, 18:23  [ТС] #17
да русскоязычная.сейчас вот попробовал вроде работает .Да УРА вроде норм все ты гений просто тысяча лет тебе счастья)!!
0
nd2
2828 / 2398 / 1054
Регистрация: 29.01.2016
Сообщений: 8,022
06.03.2017, 18:32 #18
Цитата Сообщение от sativan Посмотреть сообщение
ты гений
Нет, причина не найдена. С русской локалью, ввод должен и через запятую работать нормально (у меня же работает). Може быть, что-то в настройках ОС.
1
sativan
2 / 2 / 0
Регистрация: 04.01.2017
Сообщений: 73
06.03.2017, 18:50  [ТС] #19
но в тех случаях,когда у меня раньше вылазила эта ошибка сейчас все нормально. Сейчас еще попробую

Добавлено через 14 минут
нашел похоже,когда стоит английский язык и я использую запятую циферную справа тогда все нормально,но вот когда переключаю на русский и использую эту же зпт и вылетает эта ошибка.Она наверное читает ее как запятая и глючит. В любом случае я бы без тебя никак не разобрался,огромное тебе спасибо за то что посоветовал использовать только точку,я думал что при вводе без разницы.Успехов тебе!)
0
nd2
2828 / 2398 / 1054
Регистрация: 29.01.2016
Сообщений: 8,022
06.03.2017, 19:32 #20
Цитата Сообщение от sativan Посмотреть сообщение
когда стоит английский язык
Стоит где? Пробуешь код с:
C++
1
setlocale(LC_ALL, "RUS");
или без? Это строчка должна влиять на правильность ввода с запятой.
1
06.03.2017, 19:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.03.2017, 19:32

Visual Studio выдаёт ошибку при вынесении объявления функции с template в .h файл. Без template всё работает
Проект содержит три файла: Source.cpp, arrTreat.h, arrTreat.cpp. Source.cpp:...

Не работает Visual Studio
При создании проекта не отображается окно редактирования кода я приложил скрин....

Имеются ли отличия в компиляторах у сред разработки Visual Studio 2006 и Visual Studio 2015 ?
скажите а где найти среду 2006 года? или можно использовать 2015 год?


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

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

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