Форум русскоязычного сообщества Ubuntu


Автор Тема: C++ проблема при компиляции  (Прочитано 2658 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Iluhaia

  • Автор темы
  • Новичок
  • *
  • Сообщений: 34
  • ololo)))
    • Просмотр профиля
C++ проблема при компиляции
« : 09 Февраль 2011, 16:57:52 »
Почему компилятор ргуаеться на 8 строку, что надо исправить?
  std::cin << choice;
(Нажмите, чтобы показать/скрыть)
Вот что он ругаеться
Цитировать
main.cpp: In function ‘int main()’:
main.cpp:8: error: no match for ‘operator<<’ in ‘std::cin << choice’
« Последнее редактирование: 09 Февраль 2011, 17:00:57 от Iluhaia »

Оффлайн hippi90

  • Активист
  • *
  • Сообщений: 433
    • Просмотр профиля
Re: C++ проблема при компиляции
« Ответ #1 : 09 Февраль 2011, 17:03:29 »
std::cin >> choice;

Оффлайн Iluhaia

  • Автор темы
  • Новичок
  • *
  • Сообщений: 34
  • ololo)))
    • Просмотр профиля
Re: C++ проблема при компиляции
« Ответ #2 : 09 Февраль 2011, 17:05:47 »
Спасибо вам большое, я тут сам очень натупил, видно же что это запрос данных а не вывод.
(надо идти на улицу, хватит сидеть за компом)
Модер, такую маленькую и глупую тему удалять?

Оффлайн ierofant

  • Любитель
  • *
  • Сообщений: 52
    • Просмотр профиля
Re: C++ проблема при компиляции
« Ответ #3 : 10 Февраль 2011, 13:38:33 »
if (choice = Sunday || choice == Saturday) 

В этой строке тоже ошибка.

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: C++ проблема при компиляции
« Ответ #4 : 10 Февраль 2011, 14:40:30 »
Ну это какбэ даже компилятор найти может.
yurik@yurik-pc:~$ cat >>test.cc
#include <iostream>
int main()
{
  enum Days { Sunday, Monday, Tuesday,
    Wednesday, Thursday, Friday, Saturday };
  int choice;
  std::cout << "Enter a day (0-6): ";
  std::cin >> choice;
  if (choice = Sunday || choice == Saturday)
    std::cout << "\nYou're already off on weekends!\n";
  else
    std::cout << "\nOkay, I'll put in the vacatio day.\n";
  return 0;
}
yurik@yurik-pc:~$ mcedit test.cc

yurik@yurik-pc:~$ g++ -Wall -Wextra -o test test.cc
test.cc: In function ‘int main()’:
test.cc:9: warning: suggest parentheses around assignment used as truth value
yurik@yurik-pc:~$
НЕ ИГНОРИРУЙТЕ ПРЕДУПРЕЖДЕНИЯ КОМПИЛЯТОРА!

Оффлайн Not eXist

  • Активист
  • *
  • Сообщений: 916
    • Просмотр профиля
Re: C++ проблема при компиляции
« Ответ #5 : 10 Февраль 2011, 17:19:13 »
Цитировать
НЕ ИГНОРИРУЙТЕ ПРЕДУПРЕЖДЕНИЯ КОМПИЛЯТОРА!
И не забываем компилировать с флагом -Wall  ;)

Оффлайн ierofant

  • Любитель
  • *
  • Сообщений: 52
    • Просмотр профиля
Re: C++ проблема при компиляции
« Ответ #6 : 10 Февраль 2011, 19:50:35 »
Ну это какбэ даже компилятор найти может.
Так "какбэ" компилятор и предыдущую нашёл. И... ?

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: C++ проблема при компиляции
« Ответ #7 : 10 Февраль 2011, 22:24:35 »
Ну на первой он реально спотыкается. Там дальше не пойдешь.
А вторая синтаксически ошибкой не является.
Какбэ стоит различать. Еще глупые вопросы будут?

Оффлайн Iluhaia

  • Автор темы
  • Новичок
  • *
  • Сообщений: 34
  • ololo)))
    • Просмотр профиля
Re: C++ проблема при компиляции
« Ответ #8 : 11 Февраль 2011, 00:59:46 »
Зачем нужен флаг -Wall?

Оффлайн [DarkNet]Alpha

  • Активист
  • *
  • Сообщений: 987
  • Эмоциональный эльдар
    • Просмотр профиля
    • EBM-радио
Re: C++ проблема при компиляции
« Ответ #9 : 11 Февраль 2011, 01:08:50 »
Показывать все предупреждения.

Оффлайн inkblack

  • Старожил
  • *
  • Сообщений: 1216
    • Просмотр профиля
Re: C++ проблема при компиляции
« Ответ #10 : 11 Февраль 2011, 01:09:59 »
Warnings = all
печатать все предупреждения.

Вообще можно посмотреть man gcc.
Делюсь знаниями, но их у меня мало!

Оффлайн Iluhaia

  • Автор темы
  • Новичок
  • *
  • Сообщений: 34
  • ololo)))
    • Просмотр профиля
Re: C++ проблема при компиляции
« Ответ #11 : 11 Февраль 2011, 01:14:39 »
Спасибо всем за ответы,Без флага -Wall при компиляции предупреждений не было.

Оффлайн ierofant

  • Любитель
  • *
  • Сообщений: 52
    • Просмотр профиля
Re: C++ проблема при компиляции
« Ответ #12 : 11 Февраль 2011, 15:22:43 »
Ну на первой он реально спотыкается. Там дальше не пойдешь.
А вторая синтаксически ошибкой не является.
Какбэ стоит различать. Еще глупые вопросы будут?
Так это "какбэ" всё равно ошибка. И от того может найти её компилятор или не может, она ошибкой быть не перестаёт. Непонятно, что вы доказать хотите.
« Последнее редактирование: 11 Февраль 2011, 15:26:22 от ierofant »

Оффлайн Iluhaia

  • Автор темы
  • Новичок
  • *
  • Сообщений: 34
  • ololo)))
    • Просмотр профиля
Re: C++ проблема при компиляции
« Ответ #13 : 12 Февраль 2011, 00:05:33 »
А тут что за ошибка?
if (choice = Sunday || choice == Saturday)

Оффлайн inkblack

  • Старожил
  • *
  • Сообщений: 1216
    • Просмотр профиля
Re: C++ проблема при компиляции
« Ответ #14 : 12 Февраль 2011, 00:11:45 »
choice = Sunday — это выражение означает «присвоить переменной choice значение Sunday», а значение этого выражения — присвоенное значение (Sunday). Это не сравнение choice и Sunday!

Значение выражения choice == Saturday: если choice и Saturday равны, то 1, иначе — 0.

Можно написать так: a = choice = Sunday. Вычисляться будет так: сначала будет вычислено значение Sunday. Потом это значение будет присвоено переменной choice. А потом это значение будет присвоено переменной a.

Вообще, начните с Кернигана и Ритчи.
« Последнее редактирование: 12 Февраль 2011, 00:19:05 от inkblack »
Делюсь знаниями, но их у меня мало!

 

Страница сгенерирована за 0.057 секунд. Запросов: 24.