Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Часть 2. Я начинающий, подскажите как...(Все вопросы начинающих!!!)

51K
05 июля 2009 года
Олориин
1 / / 05.07.2009
День добрый вопрос такой: в ListBox создал 3 столбца
ListBox1->Columns=3;
каким образом записать строку в второй и третий столбцы?
Страницы:
43K
28 июля 2009 года
breeve
54 / / 05.06.2009
Цитата: nikitozz
Вот
Код:
switch(choice)
    {
        case 1:
        {
            ofstream out("log.txt", ios:: out);
            if (!out)
            {
                cerr << "can't open 'log.txt'.";
                return 1;
            }
            ...
            ...
            out.close();
        }
        break;
        case 2:
        {
            ifstream in("log.txt");

            if (! in)
            {
                cerr << "can't open 'log.txt'";
                return 1;
            }
            ...
            ...
            in.close();
        }
                break;
    }




не помогает. мгу кинуть целиком код.

43K
28 июля 2009 года
breeve
54 / / 05.06.2009
Код:
#include<iostream>
#include<fstream>
#include<string>
using namespace std;

int main()
{
   
        char alfavit[27] = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',' '},
        shifralf[27] = {'x','z','a','v','o','i','d','b','y','g','e','r','s','p','c','f','h','j','k','l','m','n','q','t','u','w',' '};
        string login, newlogin, inlogin, innewlogin;
        unsigned short int  loglen, inloglen;
   
   
   
    int choice;
    cin >> choice;
    switch(choice)
   {
           case 1:
                       ofstream out("log.txt", ios::out);
                       if (!out)
                       {
                             cerr << "can't open.\n";
                             cin.get();
                             return 1;
                       }
                       getline(cin, login);\\вводим логин


\\шифруем и записываем в фаил

                     
    loglen = login.length();
    for(int j=0;j<loglen;j++)
    {
    for (int i=0;i<27;i++)
      {
             if (login[j]==alfavit)
             {
             newlogin[j]=shifralf;
             out.put(newlogin[j]);
             }
             
      }
    }


                       out.close();
                       break;
               case 2:
                              ifstream in("log.txt");
   
                              if (! in)
                              {
                              cerr << "can't open file";
                              cin.get();
                              return 1;
                              }    
                             
                              \\вводим логин чтобы сверить с тем что в файле
                              getline(cin, login);
                             
                              \\дешифруем
                              getline(in,inlogin);
                              inloglen = inlogin.length();
                              for(int j=0;j<inloglen;j++)
                              {
                                for (int i=0;i<27;i++)
                                {
                                if (inlogin[j]==shifralf)
                                  {
                                  //cout << alfavit;
                                  innewlogin[j]=alfavit;
                                  }
                                }
                              }
                             \\ сверяем
                              if (login==inlogin)
                              cout<< "done";
                              in.close();

    cin.get();
    return 0;
}
9
28 июля 2009 года
Lerkin
3.0K / / 25.03.2003
Ты немножко по-английски умеешь читать? Тебе компилятор ничего не подсказывал?
У тебя комментарий // в какую сторону?
43K
28 июля 2009 года
breeve
54 / / 05.06.2009
Цитата: Lerkin
Ты немножко по-английски умеешь читать? Тебе компилятор ничего не подсказывал?
У тебя комментарий // в какую сторону?



ну немножко умею. подсказывал ошибку я ее уже писал. а коммент я ток щя добавил.

43K
28 июля 2009 года
breeve
54 / / 05.06.2009
Цитата: Lerkin
Код:
...
           case 1:
        {
        ...
        }
        break;

           case 2:
        {
        ...
        }
        break;
...


Так хоть компилиться будет :D



ксати так он на свитч не ругался. я еще к тому же скобку забыл поставить. спс.

9
28 июля 2009 года
Lerkin
3.0K / / 25.03.2003
Шучу я.
Код:
#include<iostream>
#include<fstream>
#include<string>
using namespace std;

int main()
{
   
        char alfavit[27] = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',' '},
        shifralf[27] = {'x','z','a','v','o','i','d','b','y','g','e','r','s','p','c','f','h','j','k','l','m','n','q','t','u','w',' '};
        string login, newlogin, inlogin, innewlogin;
        unsigned short int  loglen, inloglen;
   
   fstream file;

   ...
   
   switch(choice)
   {
           case 1:
                       file.open( "log.txt", ios::out );
                       ...
                       file.close();
                       break;

           case 2:
                       file.open( "log.txt", ios::in );
                       ...
                       file.close();
                       break;
    }
}
...


Можешь так извернуться.
9
28 июля 2009 года
Lerkin
3.0K / / 25.03.2003
Это... Я тут реализацию твоего алгоритма "шифрования\дешифрования" поглядел, и это... Удачи тебе :rolleyes:
43K
28 июля 2009 года
breeve
54 / / 05.06.2009
Цитата: Lerkin
Шучу я.

Можешь так извернуться.



млин терь он тыкает на самый конец и говорит чтото такое непонятное:
99 log2.cpp expected constructor, destructor, or type conversion before '.' token
99 log2.cpp expected `,' or `;' before '.' token
100 log2.cpp expected unqualified-id before "return"
100 log2.cpp expected `,' or `;' before "return"
101 log2.cpp expected declaration before '}' token

 
Код:
 
43K
28 июля 2009 года
breeve
54 / / 05.06.2009
Код:
int main()
{
   
        char alfavit[27] = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',' '},
        shifralf[27] = {'x','z','a','v','o','i','d','b','y','g','e','r','s','p','c','f','h','j','k','l','m','n','q','t','u','w',' '};
        string login, newlogin, inlogin, innewlogin;
        unsigned short int  loglen, inloglen;
   
    fstream file;
   
    int choice;
    cout <<
    cout <<
    cout <<
    cin >> choice;
    switch(choice)
   {
           case 1:
                      {
                       file.open("log.txt", ios::out);
                       if (!file)
                       {
                             
                             cerr <<
                             cin.get();
                             return 1;
                       }
                       cout <<
                       getline(cin, login);
                       
    loglen = login.length();
    for(int j=0;j<loglen;j++)
    {
    for (int i=0;i<27;i++)
      {
             if (login[j]==alfavit)
             {
             newlogin[j]=shifralf;
             file.put(newlogin[j]);
             }
             
      }
    }

cin.get();
                       file.close();}
                       
               case 2:
                             file.open("log.txt", ios::in);

                             
                              cout <<
                              if (!file)
                       {
                             cerr <<
                             cin.get();
                             return 1;
                       }
                             
                              getline(cin, login);
                             
                              getline(file,inlogin);
                              inloglen = inlogin.length();
                              for(int j=0;j<inloglen;j++)
                              {
                                for (int i=0;i<27;i++)
                                {
                                if (inlogin[j]==shifralf)
                                  {
                                  //cout << alfavit;
                                  innewlogin[j]=alfavit;
                                  }
                                }
                              }
                             if (login==inlogin)
                              cout<< "done";
                              file.close();}
                              }
                             

    cin.get();
    return 0;
}
9
28 июля 2009 года
Lerkin
3.0K / / 25.03.2003
Ну, братан, значит не дано, раз скобки считать не умеешь.
43K
28 июля 2009 года
breeve
54 / / 05.06.2009
Цитата: Lerkin
Это... Я тут реализацию твоего алгоритма "шифрования\дешифрования" поглядел, и это... Удачи тебе :rolleyes:



гыы да не насамом деле все не так сложно. в книгах эти алгоритмы жесткие а этот я сам сделал. там главное не шифрование. у меня не получается сделать ввод вывод по свичу. а остальное это легко.

43K
28 июля 2009 года
breeve
54 / / 05.06.2009
ладно, и на том спасибо=)
52K
28 июля 2009 года
chipik
1 / / 28.07.2009
Добрый вечер, уважаемые.

Не подскажите как на C++ реализовать эмуляцию нажатия сочетания клавиш ctrl + Esc для открытия меню "Пуск".
31K
29 июля 2009 года
dreamer.mas
69 / / 15.11.2008
Мне кажется, такой метод решения "влоб" не совсем верный. Можно найти хэндл кнопки, после чего программно нажать её. Поиск кнопки "Пуск" с использованием MFC есть тут:

http://www.codeproject.com/KB/tips/start_button_controler.aspx
43K
31 июля 2009 года
breeve
54 / / 05.06.2009
Цитата: Lerkin
Ну, братан, значит не дано, раз скобки считать не умеешь.



скобку поставил. тупанул.

слушайте я тут понял в чем у меня проблема.
я считываю стринг гетлайном. но если я пишу гетлайн в свиче он его пропускает?! :confused:

Код:
string login;
    int a;
    cin >> a;
    switch(a)
   {
               case 1:
                    {
                    cout << "Vvedite slovo ";
                    getline (cin, login); // пропускает эту строку :confused:
                    cout << "vashe slovo: ";
                    cout << login ;
                    cin.get();
                    break;
                    }
               case 2:
                    {
                    cout << "petya" << endl;
                    break;
                    }
   }
   
   return 0;


как считать стринг в свиче?
9
31 июля 2009 года
Lerkin
3.0K / / 25.03.2003
А чего через [FONT="Courier New"]getline[/FONT], а не через [FONT="Courier New"]cin[/FONT], например?
87
31 июля 2009 года
Kogrom
2.7K / / 02.02.2008
Цитата: breeve
как считать стринг в свиче?



Интуиция подсказывает, что дело не в свиче. Как сделать по уму - не знаю. Возможно, как-то так:

cin.ignore();
getline (cin, login); // пропускает эту строку?

43K
31 июля 2009 года
breeve
54 / / 05.06.2009
Цитата: Kogrom
Интуиция подсказывает, что дело не в свиче. Как сделать по уму - не знаю. Возможно, как-то так:

cin.ignore();
getline (cin, login); // пропускает эту строку?



Ооо... Благодарствую.. нет теперь не пропускает. я бы никогда до такого самостоятельно не догнал. спасибо.

А втолковать на будущее можете, что это значит? что он игнорит?

87
31 июля 2009 года
Kogrom
2.7K / / 02.02.2008
Цитата: breeve
А втолковать на будущее можете, что это значит? что он игнорит?


Понятия не имею, что там за механизмы. Может опыт подскажет что-нибудь:

Код:
cout << "Vvedite slovo ";
        {
            char c = 0;
            cin.get(c);
            if(c != '\n')
                cin.unget();
            else
                cout << "(\\n in cin) ";
        }

        getline (cin, login); // пропускает эту строку?

Хотя по науке надо найти какое-нибудь объяснение в стандарте.
43K
31 июля 2009 года
breeve
54 / / 05.06.2009
Цитата: Kogrom
Понятия не имею, что там за механизмы. Может опыт подскажет что-нибудь:

Код:
cout << "Vvedite slovo ";
        {
            char c = 0;
            cin.get(c);
            if(c != '\n')
                cin.unget();
            else
                cout << "(\\n in cin) ";
        }

        getline (cin, login); // пропускает эту строку?

Хотя по науке надо найти какое-нибудь объяснение в стандарте.



нет тоже не пропускает.
может это от компилятора както зависит? у меня ДевС++ к слову).

43K
31 июля 2009 года
breeve
54 / / 05.06.2009
не хочу показаться назойливым)), но у меня есть еще вопрос. допустим.
дано три переменные чар.
 
Код:
char a='a';
char b='b';
char c='c';
string str;


необходимо чтоб в str было:

 
Код:
"babcab"


Делаю вот так:
 
Код:
str[0]=c;


ошибку не показывает, и символ не вставляет. думал еще:
str.append(b);
тоже не хочет:confused:
12K
31 июля 2009 года
Ghox
297 / / 26.07.2009
Хотя я сам начинающий (относительно) в C++, думаю могу здесь помочь.
Как мне представляется, операцией
 
Код:
string str;

вы создаете строку нулевой длины. И сразу же делаете попытку присваивать значение элементу (символу) строки, которая ни к чему не приводит, т.к. этого элемента просто нет.
Перед присваиванием
 
Код:
str[0]=c;

нужно или сделать так, чтобы в строке выделилось место под необходимое вам количество элементов, например, так:
 
Код:
str.resize(6);

или при создании строки сразу проинициализировать ее каким-либо значением из 6 символов, например, из 6 пробелов:
 
Код:
string str("      ");

а команда str.append(b); работать не будет, потому что для append аргументом должен быть char-овский массив или другой string.
1.8K
31 июля 2009 года
igor_nf
256 / / 13.12.2006
Цитата: breeve

 
Код:
string str;


необходимо чтоб в str было:

 
Код:
"babcab"



 
Код:
string str("babcab");


Если нужна конвертация char/string etc - там при помощи потоков *stringstream можно. Вообще глянь сюда
1.8K
31 июля 2009 года
igor_nf
256 / / 13.12.2006
Цитата: Ghox

или при создании строки сразу проинициализировать ее каким-либо значением из 6 символов, например, из 6 пробелов:
 
Код:
string str("      ");



Да уж, лёгких путей мы не ищем, нормальный конструктор не судьба использовать.

12K
31 июля 2009 года
Ghox
297 / / 26.07.2009
Цитата: igor_nf
Да уж, лёгких путей мы не ищем, нормальный конструктор не судьба использовать.



Про "нормальный конструктор" (а точнее - про нормальное использование конструктора string в данном контексте) мне известно. Тот вариант инициализации я привел потому, что исходил из предположения, что задача была не в том, чтобы создать строку с заранее известным содержанием, а в том, чтобы создать строку, и последовательно заполнять ее символами из какого-то предопределенного набора, каким символом какой элемент заполнять - определяется согласно дальнейшим условиям в коде. Хотя, конечно же, я мог ошибиться, и Breeve всего лишь требовалось получить строку с предопределенной последовательностью символов - если так, то разумеется здесь наиболее уместен ваш вариант.

43K
01 августа 2009 года
breeve
54 / / 05.06.2009
Цитата: Ghox
Про "нормальный конструктор" (а точнее - про нормальное использование конструктора string в данном контексте) мне известно. Тот вариант инициализации я привел потому, что исходил из предположения, что задача была не в том, чтобы создать строку с заранее известным содержанием, а в том, чтобы создать строку, и последовательно заполнять ее символами из какого-то предопределенного набора, каким символом какой элемент заполнять - определяется согласно дальнейшим условиям в коде. Хотя, конечно же, я мог ошибиться, и Breeve всего лишь требовалось получить строку с предопределенной последовательностью символов - если так, то разумеется здесь наиболее уместен ваш вариант.



Вот это вы госсу. вы правильно все подумали мне как раз таки надо заполнять символами "из какого-то предопределенного набора". а если быть точно. могу пояснить что я хочу, если кому интересно конечно.

я делаю шифратор/дешифратор.

 
Код:
alfavit[27] = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',},
shifralf[27] = {'x','z','a','v','o','i','d','b','y','g','e','r','s','p','c','f','h','j','k','l','m','n','q','t','u','w',};


я думаю далее и так все понятно и комментарии не нужны.


спасибо за помощь!
43K
01 августа 2009 года
breeve
54 / / 05.06.2009
сразу еще два вопроса.
как сделать так чтобы то что ты вводишь закрывалось звездочками, как пароль. при условии что я использую консольное приложение? честно юзал поиск нашел ток на делфях. :(

и еще как сделать проверку на первое открытие программы? поставить какуюто метку или что-то вроде того.
7
01 августа 2009 года
@pixo $oft
3.4K / / 20.09.2006
0)Так какие проблемы перевести с Delphi на C++?
Если уж такие проблемы всё-таки есть,то прочитай про посимволный консольный ввод.Тогда ты будешь перехватывать каждый символ без отображения,а вместо него выводить звёздочку
1)Что за 1е открытие?Запуск в 1й раз или запуск 1го экземпляра?Если 1е,то да,делай метку(например,как программы с TechNet–после подтверждения EULA они ставят метку в реестре);если 2е,то мьютексы в помощь
288
01 августа 2009 года
nikitozz
1.2K / / 09.03.2007
Цитата: @pixo $oft
если 2е,то мьютексы в помощь



Или любой другой именованный объект ядра.

43K
01 августа 2009 года
breeve
54 / / 05.06.2009
Цитата: @pixo $oft
0)Так какие проблемы перевести с Delphi на C++?
Если уж такие проблемы всё-таки есть,то прочитай про посимволный консольный ввод.Тогда ты будешь перехватывать каждый символ без отображения,а вместо него выводить звёздочку
1)Что за 1е открытие?Запуск в 1й раз или запуск 1го экземпляра?Если 1е,то да,делай метку(например,как программы с TechNet–после подтверждения EULA они ставят метку в реестре);если 2е,то мьютексы в помощь



честно говоря я не особо понял.
1. я нашел только одну ссылку насчет посимвольного ввода.
2. мне надо первого запуска. что такое текнет я незнаю. и как вставить метку в реестр тем более. а по подробнее какнибудь можно?

12K
01 августа 2009 года
Ghox
297 / / 26.07.2009
Цитата:
а если быть точно. могу пояснить что я хочу, если кому интересно конечно.

я делаю шифратор/дешифратор.


Я видел ваши предыдущие посты, где вы помещали код вашей программы - потому, собственно, я так и подумал, зачем вам нужно было, имея несколько символов, заполнять ими строку. И задача у вас, ИМХО, интересная, так что желаю успехов. :)

Цитата: breeve
1. я нашел только одну ссылку насчет посимвольного ввода.


Ну так на странице по той ссылке как раз приведены примеры, как сделать то что вам нужно
Первый пример - во втором посте сверху. Правда, он у меня не закомпилился, немного переделал и вот что у меня получилось (функция с тестовым кодом):

Код:
#include <iostream>
#include <conio.h>
#include <string>
using namespace std;

const string get_pwd() {
  string str;
  char c;
  for( ;; )
  {
    switch( c = getch())
    {
    case 13: // Нажата клавиша Enter
      cout << endl;
      return str;
    default:
      str += c;
      cout << "*";
    }
  }
}

int main() {
  string str = get_pwd();
  cout << "You entered password: " << str << endl;
}

Правда, не могу ручаться что это наилучший вариант, поищите - может найдете и получше...
+ здесь не реализовано стирание (по BackSpace) неверно введенных символов пароля - BackSpace будет считаться как очередной введенный символ. И как сделать чтобы стиралось - я честно говоря, не знаю. Вернее, я знаю как сделать, чтобы по BackSpace удалялся последний символ из string str, но вот как сделать чтобы еще и с экрана звездочка удалялась - быстро найти у меня не получилось, так что попробуйте сами поискать (или может кто другой подскажет)...
P.S. Да, и еще здесь не сделано перемещение стрелками курсора по уже введенному значению пароля (отображаемому звездочками), и стирание / вставка / замена символов в начале / середине строки.
43K
01 августа 2009 года
breeve
54 / / 05.06.2009
спасибо за помощь. буду искать! :D
9
01 августа 2009 года
Lerkin
3.0K / / 25.03.2003
Цитата: Ghox

P.S. Да, и еще здесь не сделано перемещение стрелками курсора по уже введенному значению пароля (отображаемому звездочками), и стирание / вставка / замена символов в начале / середине строки.


Не нужен такой функционал при вводе пароля.

45K
03 августа 2009 года
Eugenio
15 / / 26.07.2009
Здравствуйте, в начале объясню для чего эта программа. В этой программе сортировки в исходном массиве в начале
выбираются элементы расположенные в порядке возрастания и переносятся в выходной массив, а их места в исходном массиве заменяются на -1, затем оставшиеся элементы включаются в полученную упорядоченную последовательность
методом погружения. На промежуточном этапе застрял, не получается перенести оставшиеся элементы, почему-то переносится только последний 50 шесть раз, а не 12,21,10,8,45,50 как должно быть.

Заранее благодарен.

//программа "хитрой" сортировки

#include<stdio.h>
#include<conio.h>

int amax,imax;
void sort(int n);//функция сортировки

int enter[10]={39,12,41,21,53,10,8,45,60,50}; //неотсортированный массив
int exit[10]; //отсортированный массив

int main()
{


sort(10);

for(int i=0;i<10;i++)
printf("enter[%d]= %d exit[%d]= %d \n",i,enter,i,exit);

printf("\n");

getch();

return 0;
}


void sort(int n)
{
int t=0;

amax=enter[0]; //стартовый элемент считать максимальным
exit[0]=amax;
for(int i=0;i<n;i++)
{
imax=i;

for(int j=i+1;j<n;j++)

if(enter[j]>amax)
{
t++;
exit[t]=enter[j];
enter[imax]=-1;
amax=enter[j];
imax=j;
enter[imax]=-1;
}

}
//не могу разобраться с этим фрагментом

for(i=0;i<n;i++)
{
if(enter!=-1)

for(t=4;t<n;t++)
{
exit[t]=enter;

}
}


}
12K
03 августа 2009 года
Ghox
297 / / 26.07.2009
То, о чем вы здесь пишете:
Цитата: Eugenio
почему-то переносится только последний 50 шесть раз, а не 12,21,10,8,45,50 как должно быть.


происходит вот из-за чего:

 
Код:
for(t=4;t<n;t++)
{
exit[t]=enter;

}

Подумайте сами, что происходит в данном цикле, и на что его нужно заменить, чтобы работало так как вы хотели.
52K
04 августа 2009 года
motoden
1 / / 04.08.2009
Доброго времени суток!
Дело обстоит так: был создан проект и была подключена к нему библиотека. Использовать в файлах проекта классы, описанные в файлах библиотеки получается, использовать в файлах библиотеки классы, описанные в файле основного проекта - нет. Подскажите, как сделать так, чтобы можно было пользоваться классами описанными в файле основного проекта в файлах библиотеки?

Для примера, вот код из основного проекта:
Цитата:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using neuroLibraryNamespace;

namespace neuro
{
public class zlo...

public partial class InitializationForm : Form...
}



А это код из библиотечного файла:

Цитата:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
using System.Data;
using System.Windows.Forms;
using System.Design;


namespace neuroLibraryNamespace
{
public class neuroLibrary...
}



Применительно к этому коду вопрос звучит следующим образом: что нужно сделать, чтобы класс ZLO описанный в файле проекта был доступен в файлах библиотеки?

43K
09 августа 2009 года
breeve
54 / / 05.06.2009
всем здрасти! возник такой вопрос. я хочу вывести функцию в отдельный заголовочный фаил. и чтобы эта функция заработала необходимо подключить встроенный - string.h.

Код:
#ifndef TORUS_H_
#define TORUS_H_
string toRus(const string str)
{
  if(str.length() >= 1) {
    char buf[str.length()];
    CharToOem(str.c_str(), buf);
    return string(buf);
  }
  return str;
}
#endif


вот код. мне необходимо подключить стринг пишу #include<cstring>
и он все равно не реагирует. выдает ошибку:
4 D:\Dev-Cpp\&#239;&#240;&#238;&#227;&#232;\TORUS.cpp `string' does not name a type
может я чтот непраильно делаю. а вообще надо ли компилить этот файл?:confused:
12K
09 августа 2009 года
Ghox
297 / / 26.07.2009
Цитата: breeve
всем здрасти! возник такой вопрос. я хочу вывести функцию в отдельный заголовочный фаил. и чтобы эта функция заработала необходимо подключить встроенный - string.h.


Есть две разных библиотеки string, одна - для C, а вторая - для C++. Обе эти библиотеки можно использовать в программах на C++, первая подключается #include <cstring>, вторая - #include <string>. Какая именно вам нужна? :)

Цитата: breeve

Код:
#ifndef TORUS_H_
#define TORUS_H_
string toRus(const string str)
{
  if(str.length() >= 1) {
    char buf[str.length()];
    CharToOem(str.c_str(), buf);
    return string(buf);
  }
  return str;
}
#endif


вот код. мне необходимо подключить стринг пишу #include<cstring>


Судя по коду, вам нужна библиотека C++ (класс string - из этой библиотеки), но подключить вы пытаетесь библиотеку C. :D

Цитата: breeve
и он все равно не реагирует. выдает ошибку:
4 D:\Dev-Cpp\&#239;&#240;&#238;&#227;&#232;\TORUS.cpp `string' does not name a type
может я чтот непраильно делаю. а вообще надо ли компилить этот файл?:confused:


Сообщение означает, что вы используете какой-то тип переменной, который не является встроенным и который не был объявлен ранее (в подключаемых библиотеках или вами). Надо библиотеку string из C++ подключать.
Но подключение библиотеки C++ - это еще не все. Надо учесть еще что класс string находится в пространстве имен (namespace) std. :)

43K
09 августа 2009 года
breeve
54 / / 05.06.2009
Цитата: Ghox
Есть две разных библиотеки string, одна - для C, а вторая - для C++. Обе эти библиотеки можно использовать в программах на C++, первая подключается #include <cstring>, вторая - #include <string>. Какая именно вам нужна? :)

Судя по коду, вам нужна библиотека C++ (класс string - из этой библиотеки), но подключить вы пытаетесь библиотеку C. :D

Сообщение означает, что вы используете какой-то тип переменной, который не является встроенным и который не был объявлен ранее (в подключаемых библиотеках или вами). Надо библиотеку string из C++ подключать.
Но подключение библиотеки C++ - это еще не все. Надо учесть еще что класс string находится в пространстве имен (namespace) std. :)



а порядок написания важен? на самом деле я пробовал по разному.
те мне адо написать чтото вроде:

 
Код:
#ifndef
#include<string>
using namespace std;
#define
43K
09 августа 2009 года
breeve
54 / / 05.06.2009
я написал
Код:
#ifndef TORUS_H_
#include<string>
#include<windows.h>
using namespace std;
#define TORUS_H_
string toRus(const string str)
{
  if(str.length() >= 1) {
    char buf[str.length()];
    CharToOem(str.c_str(), buf);
    return string(buf);
  }
  return str;
}
#endif


он мне вывел ошибку связывания:
[Linker error] undefined reference to `WinMain@16'
ld returned 1 exit status


Все догнал надо было сохранять в формате header(.h)
Благодарствую Ghox!!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог