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

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

Войти
Регистрация
Восстановить пароль
 
a.n.o.n.i.m
137 / 137 / 15
Регистрация: 26.02.2011
Сообщений: 528
#1

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

26.10.2011, 12:53. Просмотров 952. Ответов 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:{} не предлогать.....
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.10.2011, 12:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос неверный ввод (C++):

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

Неверный ввод в структуру - C++
Требуется написать программу с описанием структуры STUDENT с полями Фамилия и инициалы, номер группы и массив из 5 оценок. При вводе во...

Почему-то всегда выдаёт неверный ввод - C++
#include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;string.h&gt; using namespace std; int main() { int cancel_program; ...

Как правильно заменить ввод данных простой на ввод с клавиатуры? - C++
#include &quot;stdafx.h&quot; #include &lt;cstdlib&gt; #include &lt;iostream&gt; using namespace std; int _tmain(int argc, _TCHAR* argv) ...

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
mimicria
return (true);
1957 / 1094 / 91
Регистрация: 19.04.2011
Сообщений: 2,345
26.10.2011, 13:04 #2
while(menu!=1 && menu !=2)
1
dimcoder
Полярный
462 / 434 / 68
Регистрация: 11.09.2011
Сообщений: 1,132
26.10.2011, 13:13 #3
C++
1
while((menu!=1) || (menu !=2))
не уверен, но можно попробовать
1
a.n.o.n.i.m
137 / 137 / 15
Регистрация: 26.02.2011
Сообщений: 528
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);
1957 / 1094 / 91
Регистрация: 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 / 15
Регистрация: 26.02.2011
Сообщений: 528
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);
1957 / 1094 / 91
Регистрация: 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 / 15
Регистрация: 26.02.2011
Сообщений: 528
26.10.2011, 16:04  [ТС] #8
Спасиб,то что нужно было.
А вот еще такой вопрос:
1)Ввожу размерность квадратной матрицы
2)Вылазиет меню 1 ввод вручную 2 ввод из файла
Вопрос про ввод из файла
Если ранее введенная размерность не совпадает с той которая в файле(матрица) программа зависает .Как сделать условие ,что если введеная размерность не совпадает с размерностью матрицы в файле,то пишет ошибка введите размерность.надеюсь поняли суть моего вопроса
0
a.n.o.n.i.m
137 / 137 / 15
Регистрация: 26.02.2011
Сообщений: 528
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 / 1
Регистрация: 27.10.2011
Сообщений: 189
31.10.2011, 15:53 #10
Да, можно. Начинаешь считывать n*n элементов... Если при считывании ты натыкаешься на конец файла (эл-ов мало), то пишешь, что неправильная размерность. И если в конце считывания ты окажешься не в конце файла (эл-ов в файле много), то опять выдаёшь ошибку.
0
a.n.o.n.i.m
137 / 137 / 15
Регистрация: 26.02.2011
Сообщений: 528
31.10.2011, 16:20  [ТС] #11
а можно пример в коде?
0
TwiX
60 / 60 / 1
Регистрация: 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 / 15
Регистрация: 26.02.2011
Сообщений: 528
31.10.2011, 17:22  [ТС] #13
хм не понял код,можешь закомментить?
0
TwiX
60 / 60 / 1
Регистрация: 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 / 15
Регистрация: 26.02.2011
Сообщений: 528
01.11.2011, 08:30  [ТС] #15
f >> mat[i]; эту запись не понял просто.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.11.2011, 08:30
Привет! Вот еще темы с ответами:

Потоковый ввод и ввод данных. Работа с числами - C++
Ввести с экрана два нат. числа. Найти частное первого на второе и определить, встречается ли среду его дробной части цифра 3( рассматривать...

Деревья, неверный результат - C++
вопрос по деревьям. почему-то выдает адрес ячейки, а не содержимое... почему? #include &lt;iostream&gt; using namespace std; class...

Неверный результат _getch() - C++
Здравствуйте. Пытаюсь сделать управление клавишами в программе, но когда через _getch() отлавливаю нажатие кнопки (в данный момент UP), то...

Неверный корень из числа - C++
Почему std::cout&lt;&lt;pow((int)8,1.0/2); Выводит в консоли, что то около


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
01.11.2011, 08:30
Ответ Создать тему
Опции темы

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