Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.02.2010, 18:04   #11
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

Цитата:
Сообщение от Carbon Посмотреть сообщение
Причём здесь это? Если бы была определена операция ввода/вывода для типа std::string, то там подключался бы хедер string и значит нам не нужно бы было его дополнительно подключать.
Хм. Я тут потестил, и у меня норм сработал стрим со стрингом. Тестил g++.
Но я точно уверен, что в студии у меня не была определена такая операция.
Carbon вне форума Ответить с цитированием
Старый 07.02.2010, 18:35   #12
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию



6-я студия:
Код:
#include <iostream>
#include <string>
using namespace std;


int main (){

   // Если в программе константа появляется больше чем в одном месте, её
   // лучше поместить в [константную] переменную.
   const int pass0 = 123;
   string user; //user - переменная имени пользователя
   int pass;
   cout << "Hello! Please, put your name: ";
   cin >> user; //Ошибка 1	error C2679: бинарный '>>': не найден оператор, принимающий правый операнд типа 'std::string'...
   // Раз уж "плюсы", так пусть всё будет в манере "плюсов"
   cout << endl; // '\n';
   if ( user == "admin" ) {//Ошибка 2 error C2065: admin: необъявленный идентификатор
      cout << "hi, admin!" << endl;
      // Цикл do...while - ну совсем неправильно был написан...
      // Во-первых, ключевое слово:
      do {
         cout << "please, enter your password: ";
         cin >> pass;
         // Во-вторых, ввод правильного пароля загонял программу в вечный цикл
//		   while ( pass == 1219512195 ); 
      } while ( pass != pass0 ); // И условие пишется _повторения_ цикла
      cout << endl; // '\n';
      // Если предназначение вышенаписанного цикла - заставлять пользователя вводить,
      // и вводить, и вводить... пока не введёт всё-таки правильно, то нижеследующий if
      // не нужен, в общем-то...
//      if (pass == pass0) 
         cout<<"OK! Please, enter\n!";
//		else 
//         cout<<"Password is wrong\n";
   } else 
      cout<<"Hello, user!\n";

   return 0;

}

Последний раз редактировалось Vago; 07.02.2010 в 22:48.
Vago вне форума Ответить с цитированием
Старый 07.02.2010, 19:36   #13
skript88
 
Регистрация: 24.10.2009
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Vago Посмотреть сообщение


6-я студия:
Спасибо огромное, добрый человек! Все работает.

А кто мне может сказать, почему у меня мое консольное приложение не запускается на других компьютерах? И как сделать, чтобы оно запускалось?
skript88 вне форума Ответить с цитированием
Старый 07.02.2010, 22:50   #14
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

Цитата:
Сообщение от skript88 Посмотреть сообщение
...консольное приложение не запускается на других компьютерах...
А можно чуть побольше информации об этом самом "не запускается"? Запускаем "Командную строку" -> делаем каталог с exe-шником текущим -> набираем имя exe-файла -> давим <Enter> . Что имеем?
Vago вне форума Ответить с цитированием
Старый 08.02.2010, 06:16   #15
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

Нужно статически прилинковать crt.
Carbon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц