Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
a.n.o.n.i.m
137 / 137 / 39
Регистрация: 26.02.2011
Сообщений: 535
#1

неверный ввод - C++

26.10.2011, 12:53. Просмотров 1038. Ответов 14
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
cout<<"\tViberite variant vvoda:\n\n";
      cout<<"\t1.Vvod vruchnuy\n";
      cout<<"\t2.Iz faila";
      int menu=0;
      cout<<"\n\nVash variant ? (1 or 2): ";
      cin>>menu; 
      /*while(menu!=1 || menu !=2)  Почему данный цикл не работает?(конешно /**/убираю)))
      {
                 cout<<"Error.Vvedite vash variant: ";
                 cin>>menu;
      }*/
      switch(menu)
      {
      case 1:{ тут пошел выбор
case 2:{ тут пошел выбор
Меню состоит из 2ух пунктов.Вопрос почему при вводе НЕ 1 и НЕ 2 не работает коректно цикл вайл ( ошибка введите вариант 1 или 2)?вроде верно оформил цикл вайл что не так?

П.с default:{} не предлогать.....
http://www.cyberforum.ru/cpp-beginners/thread1763277.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.10.2011, 12:53
Я подобрал для вас темы с готовыми решениями и ответами на вопрос неверный ввод (C++):

Неверный ввод в файл
Доброго времени суток! Написал программу, которая должна: 1. Считывать имя...

Почему-то всегда выдаёт неверный ввод
#include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;string.h&gt; using namespace...

Файловый ввод-вывод, ввод с клавиатуры и обработка массива структур
Добрый вечер)) У меня небольшой вопрос. Почему первые буквы (в названии книг)...

Как правильно заменить ввод данных простой на ввод с клавиатуры?
#include &quot;stdafx.h&quot; #include &lt;cstdlib&gt; #include &lt;iostream&gt; using namespace...

Ограничение на ввод символов (разрешить ввод только цифр)
Всем доброго времени суток! Я начал изучать С++ и у меня возник такой...

14
mimicria
return (true);
1960 / 1097 / 219
Регистрация: 19.04.2011
Сообщений: 2,345
26.10.2011, 13:04 #2
while(menu!=1 && menu !=2)
1
dimcoder
Полярный
467 / 440 / 157
Регистрация: 11.09.2011
Сообщений: 1,142
26.10.2011, 13:13 #3
C++
1
while((menu!=1) || (menu !=2))
не уверен, но можно попробовать
1
a.n.o.n.i.m
137 / 137 / 39
Регистрация: 26.02.2011
Сообщений: 535
26.10.2011, 14:38  [ТС] #4
Спасиб за ответ,вопрос решен.ТЕму можно закрыть
while((menu!=1) && (menu!=2))

Добавлено через 22 минуты
А нет еще возник вопрос,почему int menu=0; нельзя поменять на float menu=0; просто если вводить дробь тоже должно писать ошибку но когда я ставлю флоат программа не компилируется,как это испраивть?

Добавлено через 41 минуту
Вопрос решен,следующий вопрос
Есть файл текстовый в нем матрицы квадратная
Как сделать проверку того что в файле матрица,что если там что то другое(например вообще файл пустой или там символы какие нибудь) то ошибка введите имя файла с матрицей?

Добавлено через 19 минут
и еще как в с++ представить строку из си printf("%i ",matr[i][j]);
0
mimicria
return (true);
1960 / 1097 / 219
Регистрация: 19.04.2011
Сообщений: 2,345
26.10.2011, 14:54 #5
Цитата Сообщение от a.n.o.n.i.m Посмотреть сообщение
Как сделать проверку того что в файле матрица
А как отличить матрицу от других данных?
Цитата Сообщение от a.n.o.n.i.m Посмотреть сообщение
как в с++ представить строку из си printf("%i ",matr[i][j]);
C++
1
std::cout << matr[i][j];
для этого
C++
1
#include <iostream>;
1
a.n.o.n.i.m
137 / 137 / 39
Регистрация: 26.02.2011
Сообщений: 535
26.10.2011, 14:59  [ТС] #6
Я так пробовал но он показывает
12
34 вот так резльтат если cout << matr[i][j];

а с printf("%i ",matr[i][j]); "%i "тут же пробел,я на с++ не могу сообразить как её записать?
показывает
1 2
3 4 мне так нужно
0
mimicria
return (true);
1960 / 1097 / 219
Регистрация: 19.04.2011
Сообщений: 2,345
26.10.2011, 15:03 #7
C++
1
cout << matr[i][j] << " ";
перевод строки
C++
1
cout << endl;
1
a.n.o.n.i.m
137 / 137 / 39
Регистрация: 26.02.2011
Сообщений: 535
26.10.2011, 16:04  [ТС] #8
Спасиб,то что нужно было.
А вот еще такой вопрос:
1)Ввожу размерность квадратной матрицы
2)Вылазиет меню 1 ввод вручную 2 ввод из файла
Вопрос про ввод из файла
Если ранее введенная размерность не совпадает с той которая в файле(матрица) программа зависает .Как сделать условие ,что если введеная размерность не совпадает с размерностью матрицы в файле,то пишет ошибка введите размерность.надеюсь поняли суть моего вопроса
0
a.n.o.n.i.m
137 / 137 / 39
Регистрация: 26.02.2011
Сообщений: 535
31.10.2011, 13:25  [ТС] #9
ВВодим размерность матрицы(квадратная) n
Далее открываем файл(имя вводится с клавы ,матрица в файле введена ранее
1 2 3 4
4 5 6 7
7 8 9 0
4 7 1 8 например)

Возможно ли реализовать следующее?

И если длина строки не совпадает с введнной ранее размерностью n,то пишет ошибка введите размерность матрицы.Хотел использовать стрлен но там тип char,не получилось как можно это реализовать?
0
TwiX
60 / 60 / 10
Регистрация: 27.10.2011
Сообщений: 189
31.10.2011, 15:53 #10
Да, можно. Начинаешь считывать n*n элементов... Если при считывании ты натыкаешься на конец файла (эл-ов мало), то пишешь, что неправильная размерность. И если в конце считывания ты окажешься не в конце файла (эл-ов в файле много), то опять выдаёшь ошибку.
0
a.n.o.n.i.m
137 / 137 / 39
Регистрация: 26.02.2011
Сообщений: 535
31.10.2011, 16:20  [ТС] #11
а можно пример в коде?
0
TwiX
60 / 60 / 10
Регистрация: 27.10.2011
Сообщений: 189
31.10.2011, 17:02 #12
Сейчас рабочего ноута под рукой нет. Но будет что-то вроде этого:
C++
1
2
3
4
for (int i=0; i<n*n; i++)
  f >> mat[i];
if (!f.eof() || f.bad())
  cout << "Bad input" << endl;
1
a.n.o.n.i.m
137 / 137 / 39
Регистрация: 26.02.2011
Сообщений: 535
31.10.2011, 17:22  [ТС] #13
хм не понял код,можешь закомментить?
0
TwiX
60 / 60 / 10
Регистрация: 27.10.2011
Сообщений: 189
31.10.2011, 20:20 #14
А чего там комментить то? Сначала считываем в массив mat (n*n) элементов, а потом проверяем два флага: если eof(), то мы в конце файла (т.е. в файле было ровно 16 элементов), а если мы считываем какую-нибудь хрень, то bad() станет true.
0
a.n.o.n.i.m
137 / 137 / 39
Регистрация: 26.02.2011
Сообщений: 535
01.11.2011, 08:30  [ТС] #15
f >> mat[i]; эту запись не понял просто.
0
01.11.2011, 08:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.11.2011, 08:30
Привет! Вот еще темы с решениями:

Потоковый ввод и ввод данных. Работа с числами
Ввести с экрана два нат. числа. Найти частное первого на второе и определить,...

Неверный счёт
Почему int i = 5; out &lt;&lt; ++i * ++i; Выводит 49?

Неверный вывод
Доброго времени суток! Решал следующую задачу: Разработать ПО работы с...

Неверный результат
Всем привет! Написал программу для подбора сериалов по нескольким параметрам,...


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

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

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