powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / String VC++
24 сообщений из 24, страница 1 из 1
String VC++
    #33383852
dimadv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос такой: есть ли в VC++ аналог типа из BorlandC++ AnsiString?
...
Рейтинг: 0 / 0
String VC++
    #33383932
dimadv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вроде бы обычный тип string из библиотеки string.h выполняет те же самые функции, а вот чем отличаются эти типы может кто знает??
...
Рейтинг: 0 / 0
String VC++
    #33384045
dimadv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А вот вопрос по существу:
как вывести строчку в консольном приложении
код такой:

string s;
s="Text";
cout << s; вот так вообще не работает
...
Рейтинг: 0 / 0
String VC++
    #33385027
alex83_sql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
//Проинициализировали
CString strBuf="Hello Мир";
strBuf.AnsiToOem();
cout<<(LPCSTR)strBuf;
...
Рейтинг: 0 / 0
String VC++
    #33385434
nikname
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
cout <<c.c_str()<<endl;

Но будет в WIn кодировке

CString s="абвгдежз";
cout <<s.AnsiToOem()<<endl;
DOS кодировка.
...
Рейтинг: 0 / 0
String VC++
    #33385443
nikname
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прошу прощения.
CString s = "фывапролдж";
CString a = s.AnsiToOem();
cout <<a.GetString()<<endl;
...
Рейтинг: 0 / 0
String VC++
    #33387914
dimadv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пишу так:
#include <string.h>

CString s="Text";
и мне выдают ошибку о том что CString необъявленный идентификатор и еще 4 штуки других.
...
Рейтинг: 0 / 0
String VC++
    #33387981
--null--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторstring s;
s="Text";
cout << s; вот так вообще не работает

Так не может не работать. Совершенно нормальный код.
может и-за отсутствия cout у Вас это слилось с Press any key to continue
и поэтому Вы его не заметили? :-)
...
Рейтинг: 0 / 0
String VC++
    #33388143
Фотография Землекоп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
#include <afx.h>
#include <iostream>           

using namespace std;

int main(int argc, char* argv[])
	{
	CString s="Text";
	
	cout << (LPCSTR)s;
	return  0 ;
	}
...
Рейтинг: 0 / 0
String VC++
    #33388323
nikname
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1. Используйте мастер для создания проекта. Там будет "stdafx.h" в котором будут подлключены основные MFC классы, в том числе CString
2. Если вам нужен класс string то есть смысл включить <string.h> и либо написать
using namespace std; либо явно указывать именованую область.
3. И CString и string имеют метод, возвращающий const char*, приводил выше, это лучше, чем использовать преобразование типа.
4. Ещё раз напоминаю: в VC вы пишите в WIN кодировке. Консольное приложение же работает в окне DOC, поэтому если вы не читаете файл в DOS кодировке, а выводите что-то прямо из приложения, то лучше использовать CString из-за того, что там есть функция конвертации, иначе есть смысл прочесть про локализацию в STL.
...
Рейтинг: 0 / 0
String VC++
    #33415971
dimadv_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
#include "stdafx.h"
#include<iostream>

using namespace std;

void main()
{
 system("cls");     	
 CString s="text";
 cout << (LPCSTR)s;
}

так все и пишу, все равно пишит ошибку: error C2065: 'CString' : undeclared identifier
а если подключаю библиотеку:

то при компилировании нет ошибок, но когда запускаю exe(F5) то выдает следующую ошибку:LINK : fatal error LNK1104: cannot open file "nafxcwd.lib"

и не знаю что делать.
...
Рейтинг: 0 / 0
String VC++
    #33416001
Фотография Землекоп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что содержится в stdafx.h?
#include <afx.h> есть?
...
Рейтинг: 0 / 0
String VC++
    #33416011
Фотография Землекоп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя если компиляция проходит, то есть.
Посмотрите, а вас есть сама библиотека в "Microsoft Visual Studio\VC98\MFC\Lib\nafxcwd.lib". Точный путь, конечно, зависит от версии VC++
...
Рейтинг: 0 / 0
String VC++
    #33416158
dimadv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а нету ее там.
Версия у меня 6.0
...
Рейтинг: 0 / 0
String VC++
    #33416451
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 - виде. Поэтому даже сама операция накладная.
...
Рейтинг: 0 / 0
String VC++
    #33416512
Фотография Землекоп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimadvа нету ее там.
Версия у меня 6.0
Если нет, то и получить исполняемый файл нельзя. VC++ нужно переустановить.
...
Рейтинг: 0 / 0
String VC++
    #33416520
Фотография Землекоп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересно, а так соберется?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
#include <string>
#include <iostream>           

using namespace std;

int main(int argc, char* argv[])
	{
	string s="Text";
	
	cout << s.c_str();
	return  0 ;
	}
...
Рейтинг: 0 / 0
String VC++
    #33418429
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Землекоп dimadvа нету ее там.
Версия у меня 6.0
Если нет, то и получить исполняемый файл нельзя. VC++ нужно переустановить.

Эта, гонишь. Можна. Не обязан я статически MFC линковать, можно и динамически.
...
Рейтинг: 0 / 0
String VC++
    #33418435
Фотография Землекоп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv Землекоп dimadvа нету ее там.
Версия у меня 6.0
Если нет, то и получить исполняемый файл нельзя. VC++ нужно переустановить.

Эта, гонишь. Можна. Не обязан я статически MFC линковать, можно и динамически.

в afx.h есть место

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
#ifndef _UNICODE
    #ifdef _DEBUG
        #pragma comment(lib, "nafxcwd.lib")
    #else
        #pragma comment(lib, "nafxcw.lib")
    #endif
#else
    #ifdef _DEBUG
        #pragma comment(lib, "uafxcwd.lib")
    #else
        #pragma comment(lib, "uafxcw.lib")
    #endif
#endif

Я сомневаюсь, что все можно переделать через LoadLibrary и GetProcAddress.
...
Рейтинг: 0 / 0
String VC++
    #33419443
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Землекоп

MasterZivНе обязан я статически MFC линковать, можно и динамически.

в afx.h есть место


Ты эта, дальше вокруг этого места поройся, чтобы найти какую-нибудь AFXDLL.
Я говорю "можна" значит - можна. Если бы я сомневался , я бы написал "наверное, можно" или "возможно, можно". А я написал "можна".
Именно поэтому кстати у него и нет nafx*.lib, потому что с подачи , если при установке ничего не трогать, то, если не ошибаюсь , библиотеки для статической сборки не савяться вообще.
...
Рейтинг: 0 / 0
String VC++
    #33420921
dimadv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Землекоп
#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 - независимо от длинны строки.
и такое явление я наблюдал не только у данного метода.
...
Рейтинг: 0 / 0
String VC++
    #33420934
Фотография Землекоп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня печатает 4 для "Text". Попробуйте переустановить VC++.
...
Рейтинг: 0 / 0
String VC++
    #33819502
sadssda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dimadvА вот вопрос по существу:
как вывести строчку в консольном приложении
код такой:

string s;
s="Text";
cout << s; вот так вообще не работает
...
Рейтинг: 0 / 0
String VC++
    #33820152
nikname
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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;
тоже сработает.
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / String VC++
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]