|
|
|
String VC++
|
|||
|---|---|---|---|
|
#18+
Вопрос такой: есть ли в VC++ аналог типа из BorlandC++ AnsiString? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2005, 12:49 |
|
||
|
String VC++
|
|||
|---|---|---|---|
|
#18+
Вроде бы обычный тип string из библиотеки string.h выполняет те же самые функции, а вот чем отличаются эти типы может кто знает?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2005, 13:10 |
|
||
|
String VC++
|
|||
|---|---|---|---|
|
#18+
А вот вопрос по существу: как вывести строчку в консольном приложении код такой: string s; s="Text"; cout << s; вот так вообще не работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2005, 13:45 |
|
||
|
String VC++
|
|||
|---|---|---|---|
|
#18+
//Проинициализировали CString strBuf="Hello Мир"; strBuf.AnsiToOem(); cout<<(LPCSTR)strBuf; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2005, 17:53 |
|
||
|
String VC++
|
|||
|---|---|---|---|
|
#18+
cout <<c.c_str()<<endl; Но будет в WIn кодировке CString s="абвгдежз"; cout <<s.AnsiToOem()<<endl; DOS кодировка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2005, 21:24 |
|
||
|
String VC++
|
|||
|---|---|---|---|
|
#18+
Прошу прощения. CString s = "фывапролдж"; CString a = s.AnsiToOem(); cout <<a.GetString()<<endl; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2005, 21:26 |
|
||
|
String VC++
|
|||
|---|---|---|---|
|
#18+
пишу так: #include <string.h> CString s="Text"; и мне выдают ошибку о том что CString необъявленный идентификатор и еще 4 штуки других. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2005, 21:25 |
|
||
|
String VC++
|
|||
|---|---|---|---|
|
#18+
авторstring s; s="Text"; cout << s; вот так вообще не работает Так не может не работать. Совершенно нормальный код. может и-за отсутствия cout у Вас это слилось с Press any key to continue и поэтому Вы его не заметили? :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2005, 22:40 |
|
||
|
String VC++
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2005, 09:57 |
|
||
|
String VC++
|
|||
|---|---|---|---|
|
#18+
1. Используйте мастер для создания проекта. Там будет "stdafx.h" в котором будут подлключены основные MFC классы, в том числе CString 2. Если вам нужен класс string то есть смысл включить <string.h> и либо написать using namespace std; либо явно указывать именованую область. 3. И CString и string имеют метод, возвращающий const char*, приводил выше, это лучше, чем использовать преобразование типа. 4. Ещё раз напоминаю: в VC вы пишите в WIN кодировке. Консольное приложение же работает в окне DOC, поэтому если вы не читаете файл в DOS кодировке, а выводите что-то прямо из приложения, то лучше использовать CString из-за того, что там есть функция конвертации, иначе есть смысл прочесть про локализацию в STL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2005, 15:15 |
|
||
|
String VC++
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. так все и пишу, все равно пишит ошибку: error C2065: 'CString' : undeclared identifier а если подключаю библиотеку: то при компилировании нет ошибок, но когда запускаю exe(F5) то выдает следующую ошибку:LINK : fatal error LNK1104: cannot open file "nafxcwd.lib" и не знаю что делать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2005, 18:22 |
|
||
|
String VC++
|
|||
|---|---|---|---|
|
#18+
А что содержится в stdafx.h? #include <afx.h> есть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2005, 19:12 |
|
||
|
String VC++
|
|||
|---|---|---|---|
|
#18+
Хотя если компиляция проходит, то есть. Посмотрите, а вас есть сама библиотека в "Microsoft Visual Studio\VC98\MFC\Lib\nafxcwd.lib". Точный путь, конечно, зависит от версии VC++ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2005, 19:19 |
|
||
|
String VC++
|
|||
|---|---|---|---|
|
#18+
а нету ее там. Версия у меня 6.0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2005, 01:17 |
|
||
|
String VC++
|
|||
|---|---|---|---|
|
#18+
nikname 2. Если вам нужен класс string то есть смысл включить <string.h> и либо написать using namespace std; либо явно указывать именованую область. Если нужин класс string, то смысла включать <string.h> нету никакога. Патамучла std::string в <string>. nikname 3. И CString и string имеют метод, возвращающий const char*, приводил выше, это лучше, чем использовать преобразование типа. Скажем так : для CString все равно, ибо оно там унутре все то же самое и вызывает. Даже так - для CString метод, возвращающий const char* - это и есть преобразование типа. Другого на сколько я помню нет. А для std::string наоборот, на сколько я помню, нету преобразования типа. Есть только метод c_str(). Это связано с тем, что внутри в реализации далеко не все имплементации хранят строку в ASCIZ - виде. Поэтому даже сама операция накладная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2005, 10:21 |
|
||
|
String VC++
|
|||
|---|---|---|---|
|
#18+
dimadvа нету ее там. Версия у меня 6.0 Если нет, то и получить исполняемый файл нельзя. VC++ нужно переустановить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2005, 10:40 |
|
||
|
String VC++
|
|||
|---|---|---|---|
|
#18+
Интересно, а так соберется? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2005, 10:43 |
|
||
|
String VC++
|
|||
|---|---|---|---|
|
#18+
Землекоп dimadvа нету ее там. Версия у меня 6.0 Если нет, то и получить исполняемый файл нельзя. VC++ нужно переустановить. Эта, гонишь. Можна. Не обязан я статически MFC линковать, можно и динамически. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2005, 00:56 |
|
||
|
String VC++
|
|||
|---|---|---|---|
|
#18+
MasterZiv Землекоп dimadvа нету ее там. Версия у меня 6.0 Если нет, то и получить исполняемый файл нельзя. VC++ нужно переустановить. Эта, гонишь. Можна. Не обязан я статически MFC линковать, можно и динамически. в afx.h есть место Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Я сомневаюсь, что все можно переделать через LoadLibrary и GetProcAddress. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2005, 01:13 |
|
||
|
String VC++
|
|||
|---|---|---|---|
|
#18+
Землекоп MasterZivНе обязан я статически MFC линковать, можно и динамически. в afx.h есть место Ты эта, дальше вокруг этого места поройся, чтобы найти какую-нибудь AFXDLL. Я говорю "можна" значит - можна. Если бы я сомневался , я бы написал "наверное, можно" или "возможно, можно". А я написал "можна". Именно поэтому кстати у него и нет nafx*.lib, потому что с подачи , если при установке ничего не трогать, то, если не ошибаюсь , библиотеки для статической сборки не савяться вообще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2005, 13:37 |
|
||
|
String VC++
|
|||
|---|---|---|---|
|
#18+
Землекоп #include <string> #include <iostream> using namespace std; int main(int argc, char* argv[]) { string s="Text"; cout << s.c_str(); return 0; } вот так конечно работает, но суть то класса в его методах. и если вы допишете туда следующую строчку: cout << s.length()<<endl; то результат будет такой: 1 - независимо от длинны строки. и такое явление я наблюдал не только у данного метода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2005, 23:39 |
|
||
|
String VC++
|
|||
|---|---|---|---|
|
#18+
У меня печатает 4 для "Text". Попробуйте переустановить VC++. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2005, 23:50 |
|
||
|
String VC++
|
|||
|---|---|---|---|
|
#18+
dimadvА вот вопрос по существу: как вывести строчку в консольном приложении код такой: string s; s="Text"; cout << s; вот так вообще не работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2006, 15:20 |
|
||
|
String VC++
|
|||
|---|---|---|---|
|
#18+
MasterZiv 1. Если нужин класс string, то смысла включать <string.h> нету никакога. Патамучла std::string в <string>. [quot nikname] 2. Скажем так : для CString все равно, ибо оно там унутре все то же самое и вызывает. Даже так - для CString метод, возвращающий const char* - это и есть преобразование типа. Другого на сколько я помню нет. А для std::string наоборот, на сколько я помню, нету преобразования типа. Есть только метод c_str(). Это связано с тем, что внутри в реализации далеко не все имплементации хранят строку в ASCIZ - виде. Поэтому даже сама операция накладная. 1. Привычка от С, :( 2. напишите cout<<CString_String<<string_string; и посмотрите, что получится. Я объяснял, как вывести в поток. Вероятно cout<<(const char*)CString_String<<(const char*)string_string; тоже сработает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2006, 18:27 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=33387914&tid=2030927]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
160ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
76ms |
get tp. blocked users: |
2ms |
| others: | 219ms |
| total: | 497ms |

| 0 / 0 |
