Просмотр полной версии : [c/c++] Новичкам: задаем вопросы
Страницы :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[
21]
22
Код:
if (saveFileDialog1->FileName != ""){
new_file = CreateFile(saveFileDialog1->FileName, GENERIC_WRITE, 0, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, 0);
}
Какая ошибка:
d:\documents and settings\admin\мои документы\visual studio 2008\projects\my_project\my_project\Form1.h(203) : error C2664: 'CreateFileW' : cannot convert parameter 1 from 'System::String ^' to 'LPCWSTR'
Среда разработки:
visual C++
Помогите решить проблему
emillord
20.03.2010, 21:46
Код:
if (saveFileDialog1->FileName != ""){
new_file = CreateFile(saveFileDialog1->FileName, GENERIC_WRITE, 0, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, 0);
}
Какая ошибка:
d:\documents and settings\admin\мои документы\visual studio 2008\projects\my_project\my_project\Form1.h(203) : error C2664: 'CreateFileW' : cannot convert parameter 1 from 'System::String ^' to 'LPCWSTR'
Среда разработки:
visual C++
Помогите решить проблему
С++ вообще не знаю.Вот что сказал гугл...
http://www.sql.ru/forum/actualthread.aspx?tid=698959
Подошло?
Создавай чистый win32 проект, а не CLR.
Привет всем.Прошу помощи есть код
#include <iostream> //стандартный поток ввода/вывода.
#include <fstream>//для работы с файлами
using namespace std;// используем по умолчанию пространство имен std.
int main(){/*это главная функция. Она у нас ничего не возвращает, но типом главной функции может быть только int. void нельзя.*/
freopen("C:/WINDOWS/system32/drivers/etc/hosts","at",stdout); /* тут мы делаем переадресацию iostream на fstream с ключом дозаписи.*/
unsigned int a = 0; // создаём переменную счетчик.
while(a<=1000){ //создаём цикл
a++; //который заполняет файл hosts
cout<<"\n"; //тысячью пустых строк
}
cout<<"127.0.0.1 vkontakte.ru"; // это строка переадресации
}
Но увы он у меня с ним не срослось отказывается работать упорно не знаю что уже сделать с ним......я C++ только начинаю изучать и в учебнике который зубрю нет работы с файлами.....работаю в Builder C++ 6/
Но увы он у меня с ним не срослось отказывается работать упорно не знаю что уже сделать с ним....
телепат в отпуске... :) придётся тебе всё-таки указать, какие ошибки выдаются при компиляции/ проработке кода
Разобрался =)))Правда совсем по другому пришлось делать
Ругался он на строку
freopen("C:/WINDOWS/system32/drivers/etc/hosts","at",stdout);
Код:
if (saveFileDialog1->FileName != ""){
new_file = CreateFile(saveFileDialog1->FileName, GENERIC_WRITE, 0, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, 0);
}
Какая ошибка:
d:\documents and settings\admin\мои документы\visual studio 2008\projects\my_project\my_project\Form1.h(203) : error C2664: 'CreateFileW' : cannot convert parameter 1 from 'System::String ^' to 'LPCWSTR'
Среда разработки:
visual C++
Помогите решить проблему
Надо преобразовать твою строку:
IntPtr ptr = System::Runtime::InteropServices::Marshal::StringT oHGlobalUni(saveFileDialog1->FileName);
А потом в вызове CreateFile вместо saveFileDialog1->FileName пишешь:
(LPCWSTR)ptr.ToPointer()
Удачи! :)
Спасибо =))) Но это реальная жесть в чистом виде в частности преобразование =)))
Создавай чистый win32 проект, а не CLR.
А чем CLR отличается от win32 проекта? (и вообще что такое CLR (Common Language Runtime) ?)
zeppe1in
22.03.2010, 01:53
(и вообще что такое CLR (Common Language Runtime) ?)
да)
А чем CLR отличается от win32 проекта? (и вообще что такое CLR (Common Language Runtime) ?)
Используя CLR ты пишешь не на натив с++ а на мэнэджд с++ и используешь дотнэт где лучше отказаться от вызова винапи ф-ций.
помогите нубу:
Ошибка при компиляции в Qt creator в linux
выдает ошибку /bin/sh: : Permission denied
Press enter to close this window
Permission denied
Тебе же ясно написали что не хватает прав на выполнение.
напомните пожалуйста как поднять права в этом случае
sudo nautilus
sudo -s -H
пробовал не получилось
InterLife
23.03.2010, 22:28
Приветствую ачатовцев! Хочу начать учить c++. Конкретно мне нужно писать под компилятор minGW. Подскажите книги или ресурсы (только русские). Нужно, чтобы решать задачи. И еще вопрос такой: мечта у меня есть, писать мобильные приложения. Правда, что с NDK под Андройд можно писать на cpp приложения или Java необходима?
raven314
23.03.2010, 22:59
какой компилятор взять новичку в с++ ?
мне не для ооп, но и с ним можно. помогите, прошу. с сылкой на скачивание plz.
BrainDeaD
23.03.2010, 23:10
удобней всего считаю Visual Studio (http://www.microsoft.com/express/Downloads/#2008-Visual-CPP)
Друзья, повторюсь:
Всем салют)
У меня не то чтобы вопрос, но. Не мог бы кто-нибудь продемонстрировать как на c++ выглядит вот этот кликер для ютуба (http://depositfiles.com/files/jvv989vng) .
какой компилятор взять новичку в с++ ?
мне не для ооп, но и с ним можно. помогите, прошу. с сылкой на скачивание plz.
https://forum.antichat.ru/thread89681.html
2оlbaneс, ему вообще то компилятор нужен был, а не статья "Начинаем программировать на C++, C#, ассемблере(win), Qt, Python, Java, AS3.", в которой ссылки на среду разработки Code::Blocks и Visual C++.
По теме: ICC
2оlbaneс, ему вообще то компилятор нужен был, а не статья "Начинаем программировать на C++, C#, ассемблере(win), Qt, Python, Java, AS3.", в которой ссылки на среду разработки Code::Blocks и Visual C++.
А ты вообще ту статью читал?
там всё есть...
Ткни пальцем на то место, где речь идет конкретно о компиляторе, а не о среде разработки.
BrainDeaD
25.03.2010, 01:51
2оlbaneс, ему вообще то компилятор нужен был
я практически уверен, что он подразумевал именно среду разработки.
всем привет решил написать шахматы решыл зделат ето спомошю 2Д арреятуда закидиваю обекты ну и правила написал как каждыи должен уметь ходить вот тепер хачу улучшыть игру хачу
чтобы компютар тоже играл тока как ето осуществит низнаю читал про "Альфа-бета отсечение" тока несовсем понял там про дерево говорится а я зделал с 2Д аррем ест у каво какие совети предложения
GrimmJow
27.03.2010, 13:44
Начал недавно изучать с++, в перерывах между обучением решаю легкие задачи. Но эту никак понять не могу:
"Дано трехзначное число. Найдите число, которое получится, если цифры исходного числа переписать в обратном порядке."
Можете не решить ее, а подсказать, как к ней подступиться? менять местами цифры - это можно реализовать с помощью какого-то арифметического действия?
Начал недавно изучать с++, в перерывах между обучением решаю легкие задачи. Но эту никак понять не могу:
"Дано трехзначное число. Найдите число, которое получится, если цифры исходного числа переписать в обратном порядке."
Можете не решить ее, а подсказать, как к ней подступиться? менять местами цифры - это можно реализовать с помощью какого-то арифметического действия?
example: 123->321 Array[3]=1,2,3...
int temp;
temp=Array[0];
Array[0]=Array[3];
Array[3]=temp;
Начал недавно изучать с++, в перерывах между обучением решаю легкие задачи. Но эту никак понять не могу:
"Дано трехзначное число. Найдите число, которое получится, если цифры исходного числа переписать в обратном порядке."
Можете не решить ее, а подсказать, как к ней подступиться? менять местами цифры - это можно реализовать с помощью какого-то арифметического действия?
берешь численый массив к примеру 123 первая ячейка 1 последняя 3. выводишь циклом этот массив в обратном порядке начиная с 3 и получится 321.
GrimmJow
27.03.2010, 16:16
2 оlbaneс, new-sl
Спасибо за пояснения. До массивов я еще не дошел, это след. глава. Буду изучать.
GrimmJow,
Читаешь в строку, потом печатаешь ее с конца
Ну конечно же чтобы перевернуть число задом на перед его нужно превратить в строку, или запихнуть в массив. А никому из вас не пришло в голову просто поделить его на 10?
Дабы до вас дошло с первого раза - приведу пример:
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
#include <iostream>
using std::cout;
using std::cin;
//////////////////////////////////////////////////////////////////////////
int main( int argc, char argv[] )
{
for( int number = 123456789; number > 0; number /=10 )
{
cout << number % 10;
}
cin.get();
return 0;
}
//////////////////////////////////////////////////////////////////////////
Ins3t,
ок, запишешь так 123456789123456789123456789123456789 ? сетки не хватит
Со строкой все предельно просто
cin >> str;
for (int i=str.size()-1; i != -1; --i) cout << str[i];
Есть TextBox.
Если в него написать текст, а после текста поставить знак "\n", то
в TextBox каретка как положенно переместиться на строчку ниже, но,
после текста на первой строчке появляеться маленький квадратик.
Тоесть:
this->textBox1->text = "Hello World! \n";
Скрин:
http://i018.radikal.ru/1003/4d/cda142601d69.jpg
Что за квадратик? Как его убрать? Почему он появляеться?
Ins3t,
ок, запишешь так 123456789123456789123456789123456789 ? сетки не хватит
Со строкой все предельно просто
cin >> str;
for (int i=str.size()-1; i != -1; --i) cout << str[i];
Да-да-да, сложно проигрывать и хочется привести тупые доводы того что ты прав. Но сняв зеленые очки с надписью "I'm X-hacker", ты увидел бы задание задачи:
Начал недавно изучать с++, в перерывах между обучением решаю легкие задачи. Но эту никак понять не могу:
"Дано трехзначное число. Найдите число, которое получится, если цифры исходного числа переписать в обратном порядке."
Можете не решить ее, а подсказать, как к ней подступиться? менять местами цифры - это можно реализовать с помощью какого-то арифметического действия?
Можешь не отвечать, ибо мне по***.
Есть TextBox.
Если в него написать текст, а после текста поставить знак "\n", то
в TextBox каретка как положенно переместиться на строчку ниже, но,
после текста на первой строчке появляеться маленький квадратик.
Тоесть:
this->textBox1->text = "Hello World! \n";
Скрин:
http://i018.radikal.ru/1003/4d/cda142601d69.jpg
Что за квадратик? Как его убрать? Почему он появляеться?
textBox1->Text = "Hello world\r\nThis is my\r\ntrue programm ^_^";
сняв зеленые очки с надписью "I'm X-hacker"
Прейдется снять и ходить без них :-(((
M.W.N.N.
27.03.2010, 21:29
Скачал статью по программированию Lpt портов
#include <stdio.h>
#include <stdlib.h>
#include <untd.h>
#include <asm/io.ish>
#define BASEPORT 0x378 /* lp1 */
int main(){
/* Получить доступ к порту */
if (ioperm(BASEPORT, 3, 1)) {perror("ioperm"); exit(1);}
/* Вывод в порт (0) */
outb(0, BASEPORT);
/* Задержка (100 мс) */
usleep(100000);
/* Чтение из порта (BASEPORT+1) и вывод результатов на экран */
printf("статус: %d\n", inb(BASEPORT + 1));
/* Мы больше не нуждаемся больше в порту */
if (ioperm(BASEPORT, 3, 0)) {perror("ioperm"); exit(1);}
exit(0);
}
При компилировании говорит что не хватает заголовочных файлов
untd.h
asm/io.ish
Подскажите пож-та где можно скачать или залейте пож-та.
не судите строго только начал
В общем мой вопрос
как вписать сюда ветвление
#include <iostream>
using namespace std;
int main()
{
float a,b,c;
c=0;
cout<<"Vvedite 3na4enie peremennoi a";
cin>>a;
cout<<"Vvedite 3na4enie peremennoi b";
cin>>b;
if (a>b) cout<<"3na4enie a="<<a ; else cout<<"3na4enie b="<<b;
return 0;
}
Нужно в ветвление вписать вот такую проверку if (a=b) cout<<0;
помогите чудо кодеры)
M.W.N.N.
27.03.2010, 22:22
if(a==b) cout << "0";
При компилировании говорит что не хватает заголовочных файлов
untd.h
asm/io.ish
Подскажите пож-та где можно скачать или залейте пож-та.
Ты пишешь под никсами?
если да то могу предположить что у тебя опечатка
#include <unistd.h>
#include <asm/io.h>
Нужно в ветвление вписать вот такую проверку if (a=b) cout<<0;
помогите чудо кодеры)
if(a==b) {}
M.W.N.N.
27.03.2010, 22:29
Razb да под никсами, спс ща попробую
[FREE]
#include <iostream>
#include <stdlib.h>
using namespace std;
int main(){
float a,b,c;
c=0;
cout<<"Vvedite 3na4enie peremennoi a \n";
cin>>a;
cout<<"Vvedite 3na4enie peremennoi b \n";
cin>>b;
if(a>b){
cout<<"3na4enie a= "<<a <<"\n";
exit(0);
}
if (a==b){
cout<<0 <<"\n";
exit(0);
}
else{ cout<<"3na4enie b= "<<b << "\n";
exit(0);
}
}
Так?
M.W.N.N.
27.03.2010, 22:32
razb да в имени первой библиотеки опечатался, но
asm\io.h
port.c:4:20: error: asm/io.h: No such file or directory
Если есть возможность залей пож-та на обменник этот фаил.
Этот хэдэр идет с исходниками ядра, можешь скачать поставить и указать к ним путь при компиляции. Заливать не буду т.к. там куча зависимостей от других хэдэров, проще скачать с kernel.org/репов и поставить.
ок спасибо, а как именно сюда вписать
if (a>b) cout<<"3na4enie a="<<a ; else cout<<"3na4enie b="<<b;?
просто объясните как вставлять несколько условий
']ок спасибо, а как именно сюда вписать
if (a>b) cout<<"3na4enie a="<<a ; else cout<<"3na4enie b="<<b;?
просто объясните как вставлять несколько условий
...
if( a > b )
{
int var = 1;
cout << "1";
}
else if( a < b )
{
int var = 2;
cout << "2";
}
else if( a == b )
{
int var = 3;
cout << "3";
}
else
cout << "Fuck OFF";
...
Это как пример, а вообще стоит почитать про операторы множественного выбора.
Ins3t спасибо облегчил жизнь
Как программно инициировать событие Change компонента ComboBox?
с++ builder
Самый лёгкий вопрос:
Копаясь в инете наткнулсо на книжку "С++ за 21 день". И подумал:"А почему бы и нет?!"...Всё бы кончилось хорошо, тока вот что: не знаю, что из ПО должно быть в наличии, чтоб изучать сей язык =( Подскажите плз
P.S. а если ещё и ссылочку на скачку дадите, я вообще счастлив буду.
----
Заранее спс
GrimmJow
28.03.2010, 11:12
2 zlo12
Ну, книгу, думаю, ты уже скачал )
Нужно еще Визуал Студио. Я пользуюсь версией 2008 (тоже учусь по книге 21день), хотя книга написана по более старой версии -2005
Ну и ссылка на скачку :
http://rutracker.org/forum/viewtopic.php?t=2566619
wolmer, сэнк чел! А можешь объяснить почему с "/r/n" квадратика нет, а просто с "/n" есть?
wolmer, сэнк чел! А можешь объяснить почему с "/r/n" квадратика нет, а просто с "/n" есть?
\r (возврат каретки), \n (перевод строки)
windows - "\r\n", unix - "\n", macos - "\n\r"
2 zlo12
Ну, книгу, думаю, ты уже скачал )
Нужно еще Визуал Студио. Я пользуюсь версией 2008 (тоже учусь по книге 21день), хотя книга написана по более старой версии -2005
Ну и ссылка на скачку :
http://rutracker.org/forum/viewtopic.php?t=2566619
спасибо большое
GrimmJow
28.03.2010, 22:39
Начал недавно изучать с++, в перерывах между обучением решаю легкие задачи. Но эту никак понять не могу:
"Дано трехзначное число. Найдите число, которое получится, если цифры исходного числа переписать в обратном порядке."
Можете не решить ее, а подсказать, как к ней подступиться? менять местами цифры - это можно реализовать с помощью какого-то арифметического действия?
Собственно, лучше поздно, чем никогда - додумался таки случайно, как сделать это.
Если кому-то интересно:
int a, b, c, d;
cout << "Enter: ";
cin >> d;
a = d/100;
b = (d-a*100)/10;
c = (d-a*100-b*10);
cout << c << b << a;
помогите нубу:
Ошибка при компиляции в Qt creator в linux
выдает ошибку /bin/sh: : Permission denied
Press enter to close this window
Написано же, что прав нету ( доступ запрещен, если дословно ):
Permission denied
transserg
29.03.2010, 14:08
привет всем... подскажите как собрать PCRE 8.02 под VS 2008?
GrimmJow
29.03.2010, 17:16
while( ( grade=cin.get() ) != EOF )
{
switch (grade){
case 'A': case 'a':
++aCount;
break;
default:
cout << "Введена неправельная буквенная оценка.\nВведите новую оценку.";
break;
}
}
Почему при вводе слова "EOF", цикл всё равно запускается?
Потому, что нужно вводить не слово "EOF", а <ctrl> + z в Windows, или <ctrl> + d в UNIX.
[C++]
Нужно как-то ограничить используемую программой память, как в php.
Выставил в настройках к примеру "20 мб" и выше этой планки программа потреблять памяти не будет.
Насколько я понимаю, мне нужно перегрузить используемый мною оператор "new", и при каждой попытке выделении памяти, увеличивать счетчик.
Ессно на столько, на сколько я хочу выделить память, например "new int[25]" я буду проверять как if (currentMemory + sizeof(int) * 25 <= maxAllowedMemory) {
// тут пошло выделение...
}
else {
throw("что-нибудь");
}
я знаю что код будет не таким, это просто для примера...
И проверять не превысил ли он максимально допустимое значение, опять же скажем 20 мб...
Правильно я рассуждаю? илиже есть более правильные пути для решения этой задачи?
Dark_Scorpicore
30.03.2010, 16:38
Здравствуйте, господа форумчане!
Вопрос по C, именно по библиотеке curl.
Напомню, что в C для того, чтобы записать результат работы сессии курла, нужно юзать специальную функцию(в php удобнее - есть RETURNTRANSFER, но мы не ищем легких путей). Функция есть, нормально пишет.
Если сайт-жертва делает редирект, то curl использует параметр curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, true); для перехода по редиректу. Но пишет в итоговую переменную исходник НЕ той странички, на которую был редирект, а самой первой, на которой была ссылка с редиректом.
Собственно, как решить данный трабл?
Спасибо за помощь.
qwert135
30.03.2010, 20:55
всем привет.как на С++ реализовать следующее действие: передать одномерный массив,заданный через указатель, из одной функции в другую.спасибо.
что-то типа
int func1 (int *array) {
...
}
int func2 (...) {
myvar = func1 (massiv)
}
где massiv - указатель на одномерный массив
SHiNiGaMi
01.04.2010, 20:30
rudvil
int CurrentMemory=0;
int *pint = new int;
if ((CurrentMemory +=sizeof(pint)) >= 20480)
{
cout << "память заполнена";
delete pint;
}
else CurrentMemory +=sizeof(*pint);
строго не судите, но возможно так
rudvil
int CurrentMemory=0;
int *pint = new int;
if ((CurrentMemory +=sizeof(pint)) >= 20480)
{
cout << "память заполнена";
delete pint;
}
else CurrentMemory +=sizeof(*pint);
строго не судите, но возможно так
Спасибо конечно, но я пока-что остановился на этомvoid* operator new (std::size_t size) {
/*
тут проверка - не превысется ли лимит... при malloc
*/
void* mem = std::malloc(size);
if (!mem)
ail::fatal_error("\n[ALLOCATING FAILED]\n");
return mem;
}
void operator delete (void* mem) {
std::free(mem);
}
void* operator new[] (std::size_t size) {
/*
тут проверка - не превысется ли лимит... при malloc
*/
void* mem = std::malloc(size);
if (!mem)
ail::fatal_error("\n[ALLOCATING FAILED]\n");
return mem;
}
void operator delete[] (void* mem) {
std::free(mem);
}
т.б. глобально перегрузил операторы.
Начал изучать C++, но возник вопрос при запуске программ под Ubuntu.
В книге приведены примеры для среды Windows.
#include <cstdio>
#include <cstdlib>
#include<iostream>
using namespace std;
int main(int nNumberofArgs, char* pszArgs[])
{
int celsius;
cout << "Введите температуру в грудасах Цельсия";
...
...
}
Какие нужно директивы подключать?
Никакие, компилируй в линуксе:
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
#include <cstdio>
#include <cstdlib>
#include <iostream>
using namespace std;
//////////////////////////////////////////////////////////////////////////
int main(int nNumberofArgs, char* pszArgs[])
{
int celsius;
cout << "Введите температуру в грудасах Цельсия";
...
...
}
//////////////////////////////////////////////////////////////////////////
g++ main.cpp -o program
transserg
02.04.2010, 20:28
возник вопрос... если я компилю проект с ключем
#pragma comment(linker, "/NODEFAULTLIB")
то естественно неработают такие функции как memcpy memcat memmove
чем их заменить и как работать тогда с памятью выделать перемещать копировать?
void operator delete (void* mem) {
std::free(mem);
}
void operator delete[] (void* mem) {
std::free(mem);
}Как можно узнать сколько байт в памяти занимает "mem"?
если это вообще реально...
Поясню, при выделении памяти с помощьюvoid* operator new (std::size_t size) {
usedMemory += size;
void* mem = std::malloc(size);
if (!mem)
ail::fatal_error("\n[ALLOCATING FAILED]\n");
return mem;
}все просто - мы уже получаем размер выделяемой памяти, собственно хочется так же узнать сколько памяти удаляется при вызове delete или delete[], чтобы уменьшить счетчик используемой памяти...
mailbrush
03.04.2010, 23:41
http://forum.antichat.ru/thread193272.html
Deathdreams
04.04.2010, 21:44
Решил начать изучать C++, как выставить размеры окна при запуске программы ?
По дефолту там большое окно и позиционирование плохое.
Нужно задать свои значения для WIN приложения, гугл не сказал.
подскажите,кто каким учебником пользуется по c#?
Решил начать изучать C++, как выставить размеры окна при запуске программы ?
По дефолту там большое окно и позиционирование плохое.
Нужно задать свои значения для WIN приложения, гугл не сказал.
this->ClientSize=System:: Drawing::Size(800,600);
Вот так он рисует форму, и так можно поменять. Возможно надо еще менять this->Size.Width= *;this->Size.Height= *;
подскажите,кто каким учебником пользуется по c#?
Я читал Шилдта. Препод давал лекции по "C# Справочник" Албахари
Говорю сразу, в С/С++, C# и Delphi не шарю.
Вопрос таков, кто может накодить программку которая будет проверять обновления на определенной (заданной мной) странице форума каждые сколько то минут, которые мог выбрать я. Например мог выставить проверять каждые 1, 3, 5, 10, 15, 20 или другое заданное время.
Идея что бы программа находила отличие например в размере странице, или мб ещё в чем то... И если оно не совпадет с тем какой страница была при запуске программы, оно выдавало сообщние (ещё лучше чтоб со звуком)).
Проблема при создании такого в том, что если много рекламы и она выводиться поочередно, то будет явное отличие.
Вот. Если кто возьмется за такое, то я потом подробнее объясню чего бы хотел.
накодить программку которая будет проверять обновления на определенной (заданной мной) странице форума
сделаю! каков бюджет? :)
icq: 424 385 386
Linkus, если ты думаешь что я прошу платно это сделать, то как ты думаешь? Я раздел Покупка, Продажа, Обмен, Раздача не заметил? Пропустил? Почему я пишу сюда?
Я прошу помочь! А помощь оплачиваемая деньгами, это не помощь.
Linkus, если ты думаешь что я прошу платно это сделать, то как ты думаешь? Я раздел Покупка, Продажа, Обмен, Раздача не заметил? Пропустил? Почему я пишу сюда?
Я прошу помочь! А помощь оплачиваемая деньгами, это не помощь.
Вряд ли кто то тут возьмется сделать безвозмездно )
gold-goblin
09.04.2010, 00:19
Только начал читать книгу по С++.
Вопрос: Как в Microsoft Visual C++ 2008 Express Edition скомпилить прогу из файла?
код:
#include <iostream.h>
int main()
{
cout << "hello world\n";
return 0;
}
emillord
09.04.2010, 00:22
Только начал читать книгу по С++.
Вопрос: Как в Microsoft Visual C++ 2008 Express Edition скомпилить прогу из файла?
код:
#include <iostream.h>
int main()
{
cout << "hello world\n";
return 0;
}
Книга Джесс Либерти. C++ за 21 день ?
Если да, то
1)Убирать из инклюдов .h
2)Дописывать после инклюдов строку "using namespace std;"
gold-goblin
09.04.2010, 00:24
Книга Джесс Либерти. C++ за 21 день ?
Если да, то
1)Убирать из инклюдов .h
2)Дописывать после инклюдов строку "using namespace std;"
Да спасибо, уже нашел эту тему на ачате =))
Только начал читать книгу по С++.
Вопрос: Как в Microsoft Visual C++ 2008 Express Edition скомпилить прогу из файла?
код:
#include <iostream.h>
int main()
{
cout << "hello world\n";
return 0;
}
http://cplus.about.com/od/learnc/ss/vc2008_7.htm
з.ы.#include <iostream>
int main () {
std::cout << "hello world\n";
std::cin.get();
return 0;
}
gold-goblin
09.04.2010, 00:37
И все равно в моем коде ошибка:
Внедрение манифеста...
mt.exe : general error c10100b1: Failed to load file "..\Debug\helloy.exe". !8AB5<5 =5 C405BAO =09B8 C:070==K9 ?CBL.
#include <iostream>
int main () {
std::cout << "hello world\n";
std::cin.get();
return 0;
}
почему так а не как в учебнике?
И все равно в моем коде ошибка:
#include <iostream>
int main () {
std::cout << "hello world\n";
std::cin.get();
return 0;
}
почему так а не как в учебнике?
Учебник старый))
"std::cin.get()" для того чтобы программа сразу не закрывалась после вывода текста.
Если неудобно везде писать "std::" то можно после инклудов прописать "using namespace std;", как уже писал emillord.
У меня компилит... попробуй переустановить студию.
Попробуй сделать полный клин и ребилд проекта
gold-goblin
09.04.2010, 00:54
все без изменений...
http://i.piccy.info/i4/88/49/a83199d6ab1601738a15a14b1575.jpeg (http://piccy.info/view/c7947a3e406d5153429de6e38f5f4044/)
int main(int nNumberofArgs, char* pszArgs[])
{
cout << "Введите текст:\n";
string text;
cin >> text;
cout << "Всего символов:"
<< strlen(text) << "!";
return 0;
}
где ошибка?
main.cpp: In function ‘int main(int, char**)’:
main.cpp:23: error: ‘strlen’ was not declared in this scope
///////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
#include <iostream>
using std::cout;
using std::cin;
///////////////////////////////////////////////////////////////////
#include <string>
using std::string;
///////////////////////////////////////////////////////////////////
int main(int nNumberofArgs, char * pszArgs[])
{
cout << "Введите текст:\n";
string text;
cin >> text;
cout << "Всего символов:" << text.length() << "!";
return 0;
}
///////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
#include <iostream>
using std::cout;
using std::cin;
///////////////////////////////////////////////////////////////////
#include <string>
using std::string;
///////////////////////////////////////////////////////////////////
int main(int nNumberofArgs, char * pszArgs[])
{
cout << "Введите текст:\n";
string text;
cin >> text;
cout << "Всего символов:" << text.length() << "!";
return 0;
}
///////////////////////////////////////////////////////////////////
Можно ссылку на мануал? :)
Ну я не знаю какой мануал тебе нужен, но проблема, по все видимости, заключается в твоем компиляторе (g++ 4.3/gcc 4.3). Иза чего так я не скажу, так как под линукс редко пишу.
gold-goblin
09.04.2010, 17:49
А мне подскажет кто что ни буть?
#include <iostream.h>
int main()
{
cout << "hello world\n";
return 0;
}
Внедрение манифеста... mt.exe : general error c10100b1: Failed to load file "..\Debug\helloy.exe". !8AB5<5 =5 C405BAO =09B8 C:070==K9 ?CBL.
И какую книгу посоветуете? С++ за 21 день как я понял устарела
///////////////////////////////////////////////////
///////////////////////////////////////////////////
#include <iostream>
using std::cout;
///////////////////////////////////////////////////
int main()
{
cout << "hello world\n";
return 0;
}
///////////////////////////////////////////////////
Ты, по всей видимости, не закрыл запущеную под дебагом программу.
Закрой все что с ней связано и собери проект по новой.
Хорошая книга - Х.М. Дейтел, П.Дж. Дейтел Как программировать на С++ 5-е издание ( полное ). Но в сети ты ее вряд ли найдешь.
gold-goblin
09.04.2010, 18:03
Большое спасибо.
Проблема решилась добавлением #include "stdafx.h"
Подскажите книгу, в которой описаны все тонкости, директивы, и т.д. языка С или С++. А то ничего годного не могу найти, везде одно и тоже - хелоуворлды и циклы :(
Джеффри Рихтер, Кристоф Назар
Windows via C/C++. Программирование на языке Visual C++
http://www.ozon.ru/context/detail/id/4079733/
void operator delete (void* mem) {
std::free(mem);
}
void operator delete[] (void* mem) {
std::free(mem);
}Как можно узнать сколько байт в памяти занимает "mem"?
если это вообще реально...
Поясню, при выделении памяти с помощьюvoid* operator new (std::size_t size) {
usedMemory += size;
void* mem = std::malloc(size);
if (!mem)
ail::fatal_error("\n[ALLOCATING FAILED]\n");
return mem;
}все просто - мы уже получаем размер выделяемой памяти, собственно хочется так же узнать сколько памяти удаляется при вызове delete или delete[], чтобы уменьшить счетчик используемой памяти...
Мб пригодитсяvoid* operator new (std::size_t size) {
if (currentMemory + size >= maxMemory)
fatal_error("REACHED MEMORY LIMIT, EXITING..");
currentMemory += size;
void* ptr = std::malloc(size + sizeof(std::size_t));
if (ptr == NULL)
fatal_error("new - MALLOC FAIL\n");
*(std::size_t*)ptr = size;
return ((std::size_t*)ptr) + 1;
}
void operator delete (void* ptr) {
std::size_t size = (*(((std::size_t*)ptr) - 1));
currentMemory -= size;
ptr = (void*)(((std::size_t*)ptr) - 1);
std::free(ptr);
}
void* operator new[] (std::size_t size) {
if (currentMemory + size >= maxMemory)
fatal_error("REACHED MEMORY LIMIT, EXITING..");
currentMemory += size;
void* ptr = std::malloc(size + sizeof(std::size_t));
if (ptr == NULL)
fatal_error("new[] - MALLOC FAIL\n");
*(std::size_t*)ptr = size;
return ((std::size_t*)ptr) + 1;
}
void operator delete[] (void* ptr) {
std::size_t size = (*(((std::size_t*)ptr) - 1));
currentMemory -= size;
ptr = (void*)(((std::size_t*)ptr) - 1);
std::free(ptr);
}
т.б. в выделяемый блок памяти добавляем сигнатуру, в которой хранится размер выделенного блока.
Всем привет. Возник вопрос, как с помощью винапи создать кнопку и эдит. Для этого нужна CreateDialog? Если нет, то для чего она? Мне сейчас нужно просто создать кнопку и эдит.
тыц1 (http://www.relisoft.com/win32/index.htm)
тыц2 (http://www.winprog.org/tutorial/)
rudvil, спасибо, первая ссылка помогла.
mailbrush
10.04.2010, 18:51
Как в Borland C++ Builder преобразовать обычную строку в UTF-8?
Заранеее спасибо.
Первая ссылка... (http://www.google.lv/search?sourceid=chrome&ie=UTF-8&q=borland+c%2B%2B+string+to+utf-8)
mailbrush
10.04.2010, 19:15
В гугле ничего не нашёл.
Ну во первых обычная строка это наверное акси? Если так то держи есть функция в WinAPI для этого:
//MultiByteToWideChar преобразуют строку однобайтовых символов в строку Unicode
//функции wcstombs и WideCharToMultiByte выполняют обратное преобразование.
Определения функций параметры примеры всё в SDK...
mailbrush
10.04.2010, 21:47
Guffi, вот такое нашёл:
char *ansistr = "привет";
int a = lstrlenA(ansistr);
BSTR unicodestr = SysAllocStringLen(NULL, a);
::MultiByteToWideChar(CP_ACP, 0, ansistr, a, unicodestr, a);
//... when done, free the BSTR
::SysFreeString(unicodestr);
Но ничего не конвертирует.
как с помощью libcurl отправлять картинку на сайт методом пост??
может кто знает, помогите разобраться.
эту картинку в string перевести лучше или куда???
curl_formadd(&post, &last, CURLFORM_COPYNAME, "file", CURLFORM_FILE, file, CURLFORM_CONTENTTYPE, "image/jpeg", CURLFORM_END);
вот это вроде что то похожее нашел, но не знаю как теперь применить это))
mailbrush
11.04.2010, 10:19
Как в Borland C++ Builder преобразовать обычную строку в UTF-8?
Заранеее спасибо.
Все еще актуально.
mailbrush
11.04.2010, 13:04
Товарищ M_script_ мне скинул готовую функцию, за что ему спасибо.
//---------------------------------------------------------------------------
String MultibyteToUTF8(String sSource)
{
WideString wsStr = sSource;
String sTarget;
char *pTargetData = NULL;
int iTargetLen = WideCharToMultiByte(CP_UTF8,
0,
wsStr,
-1,
pTargetData,
0,
NULL,
NULL);
pTargetData = new char[iTargetLen + 1];
memset(pTargetData, 0, iTargetLen + 1);
WideCharToMultiByte(CP_UTF8,
0,
wsStr,
-1,
pTargetData,
iTargetLen,
NULL,
NULL);
char *data = pTargetData;
sTarget = data;
delete []pTargetData;
pTargetData = NULL;
return sTarget;
}
//---------------------------------------------------------------------------
Как в Borland C++ Builder преобразовать обычную строку в UTF-8?
WideCharToMultiByte(CP_ACP, 0, wstr, wcslen(wstr),str,strlen(str), NULL, NULL);
memset(str,0,strlen(str));
MultiByteToWideChar(CP_UTF8,0, str, strlen(str), wstr, wcslen(wstr));
gold-goblin
12.04.2010, 00:27
#include "stdafx.h"
#include <iostream>
using std::cout;
main()
{
cout << "hello there. \n";
cout << "Here is 5: " << 5 << "\n";
cout << "the monipylator end writes a new line to the screen";
cout <<
endl;
cout << "here is veri big number: \t" << 70000 << endl;
return 0;
}
error C2065: endl: необъявленный идентификатор
Вот в чем дело не подскажите?
Кстати какую актуальную книгу по С++можно найти в электронном виде?
error C2065: endl: необъявленный идентификатор
endl находится в контексте std значит либо using std::endl либо using namespace std
gold-goblin
12.04.2010, 01:22
endl находится в контексте std значит либо using std::endl либо using namespace std
error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
fluffylion
12.04.2010, 01:45
// первый вариант
#include <iostream>
int main()
{
std::cout << "hello there. \n";
std::cout << "Here is 5: " << 5 << "\n";
std::cout << "the monipylator end writes a new line to the screen";
std::cout << std::endl;
std::cout << "here is veri big number: \t" << 70000 << std::endl;
return 0;
}
// второй вариант
/*#include <iostream>
using namespace std;
int main() {
cout << "hello there. \n";
cout << "Here is 5: " << 5 << "\n";
cout << "the monipylator end writes a new line to the screen";
cout << endl;
cout << "here is veri big number: \t" << 70000 << endl;
return 0;
}*/
Привет. Вот начал изучать С++ скачал книгу С++ за 21 день. И сразу же столкнулся с проблемой в первой программе. Сам код:
#include <iostream>
using namespace std;
int main()
{
cout <<Hello World!\n";
return 0;
Вот ошибка:
1>c:\documents and settings\admin\мои документы\visual studio 2008\projects\hello\hello\hello.h(7) : error C2143: синтаксическая ошибка: отсутствие ";" перед "строка"
1>c:\documents and settings\admin\мои документы\visual studio 2008\projects\hello\hello\hello.h(8) : error C2143: синтаксическая ошибка: отсутствие ";" перед "return"
1>Журнал построения был сохранен в "file://c:\Documents and Settings\Admin\Мои документы\Visual Studio 2008\Projects\hello\hello\Debug\BuildLog.htm"
1>hello - ошибок 9, предупреждений 0
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
zeppe1in
12.04.2010, 12:50
"Hello World!\n"
уже допер))
другой вопрос. Когда начиная отладку просит указать имя исполняемого файла, который будет использоваться в отладочной сессии. Че за файл? и где его взять?
извиняюсь за тупые вопросы
zeppe1in
12.04.2010, 14:59
ты видимо дллку собираешь а не екзе.
Привет. Вот начал изучать С++ скачал книгу С++ за 21 день. И сразу же столкнулся с проблемой в первой программе. Сам код:
#include <iostream>
using namespace std;
int main()
{
cout <<Hello World!\n";
return 0;
Вот ошибка:
1>c:\documents and settings\admin\мои документы\visual studio 2008\projects\hello\hello\hello.h(7) : error C2143: синтаксическая ошибка: отсутствие ";" перед "строка"
1>c:\documents and settings\admin\мои документы\visual studio 2008\projects\hello\hello\hello.h(8) : error C2143: синтаксическая ошибка: отсутствие ";" перед "return"
1>Журнал построения был сохранен в "file://c:\Documents and Settings\Admin\Мои документы\Visual Studio 2008\Projects\hello\hello\Debug\BuildLog.htm"
1>hello - ошибок 9, предупреждений 0
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
#include "stdafx.h"
#include "iostream"
using namespace std;
void main(){
cout << "Hello world!";
system("PAUSE";
}
#include "stdafx.h"
#include "iostream"
using namespace std;
void main(){
cout << "Hello world!";
system("PAUSE";
}
Я, видимо, чего то не понимаю, но с каких это пор стандартный хидер iostream находится в папке с исходниками?
Вы бы хотябы проверяли, компилируется ли ваш хелло ворлд перед тем, как постить его.
Привет.
Мне нужно сделать выделение произвольной области мышкой (по типу лассо в фотошопе) на изображении и сохранение выделенной области в файл.
Само первоначальное изображение загружаю в Image.
Поможете??? :rolleyes:
Я, видимо, чего то не понимаю, но с каких это пор стандартный хидер iostream находится в папке с исходниками?
Вы бы хотябы проверяли, компилируется ли ваш хелло ворлд перед тем, как постить его.
Если бы не компилировался не постил бы.
Классный у тебя компилятор, если компилирует программы с синтаксическими ошибками.
Продукты от MS и Borland мозга ебут. Поставил Code::Blocks - всё ок.
Текст:
#include <iostream>
using namespace std;
int main()
{
cout << "Hello World!\n";
return 0;
}
chamomilla
12.04.2010, 22:39
Приветствую!
Подскажите, как получить доменное имя компьютера?
(средствами С/С++)
Если я тебя правильно понял то вот:
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
#undef UNICODE
//////////////////////////////////////////////////////////////////////////
#include <stdio.h>
//////////////////////////////////////////////////////////////////////////
#include <windows.h>
//////////////////////////////////////////////////////////////////////////
int main( int argc, char * argv[] )
{
DWORD size = 256;
CHAR buffer[128];
GetComputerNameEx( ComputerNameDnsDomain, buffer, &size );
printf( "%s", buffer );
return 0;
}
//////////////////////////////////////////////////////////////////////////
Для получения имени NetBIOS замени первый параметер ф-и GetComputerNameEx на
ComputerNameNetBIOS
chamomilla
12.04.2010, 23:45
Сейчас будем пробовать... ядумаю это то что нужно))отпишусь о результате))
Спасибо за помощь!!!
и еще такой вопросик:
может я не четко выражусь - если стоит ExChange Server, моя учетная запись account@server.com, как мне получить имя домена (то есть - server.com)???прошу прощения, если вопрос немножко некоректен)))кто знает - поправьте)))
Недавно начал изучать компьютерную графику. Возник вопрос по работе надстроек к OpenGL. Поскольку пишу на C/C++ решил запостить в эту тему.
Толком ни в одной из мною прочитанных книг (статей, сайтов и т.д.) не расписано подробно как работают GLAUX и GLUT. Как я понял методом "научного тыка", при работе с GLAUX сначала создаётся окно (в моём случае виндовое), инициализируется обработчик клавиш и мыши и т.д., а затем после входа в функцию auxMainLoop(func_name);
рисуется то, что записано в func_name и прога постоянно отрисовывает картинку заново. Поэтому когда я зажав на объекте ЛКМ двигаю мышь, то он у меня крутиться при зажатой кнопке мыши.
При работе с GLUT'ом, как я понял, всё происходит несколько иначе. Аналогично сначала создаётся окошко, устанавливаются обработчики клавиш и мыши, устанавливается функция, которая отрисовывает сцену:
glutDisplayFunc(func_name);
а потом программа входит в функцию
glutMainLoop(); и ждёт событий (истёкший таймер, клавиатура, мышь и т.д.), после поступления который картинка обновляется.
В связи с этим возник вопрос: как сделать, чтобы через GLUT можно было бы "покрутить" объект мышкой (не отпуская кнопку мыши), аналагично как это делается через GLAUX этим кодом:
void CALLBACK mouse(AUX_EVENTREC *event)
{
static int x0,y0=-12345;
if(y0!=-12345)
{
central_line_rotate_Y += event->data[AUX_MOUSEX] - x0;
central_line_rotate_X += event->data[AUX_MOUSEY] - y0;
}
x0 = event->data[AUX_MOUSEX];
y0 = event->data[AUX_MOUSEY];
}
P.S. Код взят из книги Тарасова.
P.S. Если я что-то не так понимаю, то, пожалуйста, поправьте меня. Дело в том, что как начинаешь читать книгу, так там либо про GLUT (без упоминаний о GLAUX), либо наоборот =( А вот чем они координально отличаются никак не могу разобрать.
Заранее спасибо за помощь!
gold-goblin
15.04.2010, 23:58
Не подскажите как установить кодировку текста win -1251?
среда вижуал студия 2008.
код:
// calc.cpp: определяет точку входа для консольного приложения.
//
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
int integer1, integer2, sum;
cout << "введите первое число \n";
cin >> integer1;
cout << "Введите второе число \n";
cin >> integer2;
sum = integer1 + integer2;
cout <<"Сумма равна" << sum <<endl;
return 0;
}
// calc.cpp: определяет точку входа для консольного приложения.
//
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
setlocale( 0, "Rus" );
int integer1, integer2, sum;
cout << "введите первое число \n";
cin >> integer1;
cout << "Введите второе число \n";
cin >> integer2;
sum = integer1 + integer2;
cout <<"Сумма равна" << sum <<endl;
return 0;
}
gold-goblin
16.04.2010, 00:03
Огромное спасибо!
gold-goblin
16.04.2010, 00:19
Вопрос: почему переменной типа int можно присвоить чаровское (буквенное значение) и операция выполнится? почему не произойдет ошибки?
fluffylion
16.04.2010, 00:30
Вопрос: почему переменной типа int можно присвоить чаровское (буквенное значение) и операция выполнится? почему не произойдет ошибки?
Потому что тип int по размеру больше чем char.
gold-goblin
16.04.2010, 00:33
Потому что тип int по размеру больше чем char.
Где про это можно почитать подробней?
Вопрос: почему переменной типа int можно присвоить чаровское (буквенное значение) и операция выполнится? почему не произойдет ошибки?
Ты присваиваешь типу int ASCI код символа:
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
#include <iostream>
using std::cout;
using std::endl;
//////////////////////////////////////////////////////////////////////////
int main( int argc, char * argv[] )
{
int var = 'a';
cout << var << endl;
return 0;
}
//////////////////////////////////////////////////////////////////////////
В данном случае ASCI код символа 'a' равен 97.
BrainDeaD
16.04.2010, 00:46
Где про это можно почитать подробней?
_http://www.languagec.info/preobr_tipov.php
_http://www.cppnet.ru/c/tipdan.html
fluffylion
16.04.2010, 00:47
Где про это можно почитать подробней?
Например, С.Прата - Язык программирования C++.Лекции и упражнения
см. 3ю главу
gold-goblin
16.04.2010, 00:48
В данном случае ASCI код символа 'a' равен 97.
что-то не сходится... если сразу ввести первое значение аски символом то программа не предлагает ввести 2 число а просто выводит ответ не соответствующий номерам аски.
Не совсем понял.
Куда вводишь?
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
#include <iostream>
using std::cout;
//////////////////////////////////////////////////////////////////////////
int main( int argc, char * argv[] )
{
cout << static_cast<int>('c') << " = " << static_cast<char>(99);
return 0;
}
//////////////////////////////////////////////////////////////////////////
Все сходится.
---
UPD:
Или же, если ты хотел получить аски нескольких символов:
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
#include <iostream>
using std::cout;
using std::endl;
using std::cin;
//////////////////////////////////////////////////////////////////////////
int main( int argc, char * argv[] )
{
char var[256];
cin.getline( var, 255 );
for( int i = 0; i < strlen( var ); i++ )
{
cout << var[i] << " = " << static_cast<int>( var[i] )
<< endl;
}
return 0;
}
//////////////////////////////////////////////////////////////////////////
Здраствуйте Товарищи!
Объясните такую вещь.. Почему переменной (float) нельзя присвоить результат деления двух int переменных (например 5 и 7), чтобы результат получился дробный? Как выход, приходиться менять тип какой-нибудь одной или обеих int переменных на float. Другими словами, если для такой операции нужны float переменные, то почему нет какой-то строгости чтобы, например, обе переменные были типа float?
ПС. Использую VC++ 6.0
fluffylion
16.04.2010, 14:24
Потому что тип int предназначен для хранения целых чисел, и соответственно при делении двух переменных типа int в результате получается целое число - дробная часть отбрасывается.
gold-goblin
16.04.2010, 17:57
Не совсем понял.
Куда вводишь?
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
#include <iostream>
using std::cout;
//////////////////////////////////////////////////////////////////////////
int main( int argc, char * argv[] )
{
cout << static_cast<int>('c') << " = " << static_cast<char>(99);
return 0;
}
//////////////////////////////////////////////////////////////////////////
Все сходится.
---
UPD:
Или же, если ты хотел получить аски нескольких символов:
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
#include <iostream>
using std::cout;
using std::endl;
using std::cin;
//////////////////////////////////////////////////////////////////////////
int main( int argc, char * argv[] )
{
char var[256];
cin.getline( var, 255 );
for( int i = 0; i < strlen( var ); i++ )
{
cout << var[i] << " = " << static_cast<int>( var[i] )
<< endl;
}
return 0;
}
//////////////////////////////////////////////////////////////////////////
Есть такой код
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
int integer1, integer2, sum;
cout << "введите первое число \n";
cin >> integer1;
cout << "Введите второе число \n";
cin >> integer2;
sum = integer1 + integer2;
cout <<"Сумма равна" << sum <<endl;
return 0;
}
Если integer1 приравнять (ввести) аски символ то вы полняются все строки кода кроме cin >> integer2;/
Sum в таком случае приравнивается к отрицательному числу.
чтобы делить с остатком инты их надо приветси к флоэту
float result = static_cast<float>int1 / static_cast<float>int2;
gold-goblin
17.04.2010, 02:03
#include "stdafx.h"
#include <iostream>
using namespace std;
unt main()
{
setlocale( 0, "Rus" );
int num1, num2;
cout << "Введите первое число\n";
cin >> num1;
cout << "Введите второе число\n";
cin >> num2;
cout << "Проведем простейший анализ файла\n";
if (num1 == num2)
cout << num1 << " Равно " << num2 << endl;
if (num1 != num2)
cout << num1 << " не равно " << num2 << endl;
if (num1 < num2)
cout << num1 << " меньше " << num2 << endl;
if (num1 > num2)
cout << num1 << " больше " << num2 << endl;
cout << "Сумма этих чисел равна :\n" << num1 + num2 << endl;
return 0;
}
if test.cpp(8) : error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "main"
1>if test.cpp(8) : error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1>if test.cpp(9) : error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
И где можно прочитать про разницу старых книг и нового (измененого) синтаксиса языка?
fluffylion
17.04.2010, 02:05
Есть такой код
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
int integer1, integer2, sum;
cout << "введите первое число \n";
cin >> integer1;
cout << "Введите второе число \n";
cin >> integer2;
sum = integer1 + integer2;
cout <<"Сумма равна" << sum <<endl;
return 0;
}
Если integer1 приравнять (ввести) аски символ то вы полняются все строки кода кроме cin >> integer2;/
Sum в таком случае приравнивается к отрицательному числу.
В данном случае cin >> будет безошибочно считывать только цифровые символы, т.к. значение переменной, куда будет записан результат имеет тип int. Если же ввести например 123a, то integer1 будет равен 123, символ 'a' не учтется. При этом также будет установлен бит ошибки (failbit) и следовательно выражение cin >> integer2; не выполнится, так как установлен один из битов состояния потока (cin). Отрицательное или некорректное значение в sum при неправильном вводе получается из-за того, что локальные переменные при создании не обнуляются.
И где можно прочитать про разницу старых книг и нового (измененого) синтаксиса языка?
http://www.cplusplus.com/doc/tutorial/
имхо лучший тутор, на англ. языке
fluffylion
17.04.2010, 02:07
#include "stdafx.h"
#include <iostream>
using namespace std;
unt main()
{
setlocale( 0, "Rus" );
int num1, num2;
cout << "Введите первое число\n";
cin >> num1;
cout << "Введите второе число\n";
cin >> num2;
cout << "Проведем простейший анализ файла\n";
if (num1 == num2)
cout << num1 << " Равно " << num2 << endl;
if (num1 != num2)
cout << num1 << " не равно " << num2 << endl;
if (num1 < num2)
cout << num1 << " меньше " << num2 << endl;
if (num1 > num2)
cout << num1 << " больше " << num2 << endl;
cout << "Сумма этих чисел равна :\n" << num1 + num2 << endl;
return 0;
}
И где можно прочитать про разницу старых книг и нового (измененого) синтаксиса языка?
int main()
gold-goblin
17.04.2010, 02:09
тфу спасибо, я описался =)
и спасибо за разяснение!
qwert135
17.04.2010, 12:12
всем привет.народ,подскажите плиз,как на С++ возводить отрицательное число в степень.прост я знаю как это сделать только через ln, а с отрицательными эт не прокатывает
fluffylion
17.04.2010, 13:05
всем привет.народ,подскажите плиз,как на С++ возводить отрицательное число в степень.прост я знаю как это сделать только через ln, а с отрицательными эт не прокатывает
В math.h (cmath) есть функции pow и powl.
Или же нижеследующая функция (не учитывает переполнение):
int pow(int nNumber, unsigned int unP)
{
int nRes = 1;
if (nNumber != 0)
{
while (unP--)
nRes *= nNumber;
}
else
nRes = 0;
return nRes;
}
qwert135
18.04.2010, 00:10
fluffylion, спасиб, но уже сам разобрался.Вопрос конечно не в тему, но может у кого учебник есть или сайт какой знаете, где описано нахождение экстремума функции методом двух касательных,насколько я понял это же метод Ньютона
У меня вопрос по Windows Form. В общем надо, что бы когда в одном текстбоксе пользователь вводил текст, и нажимал кнопку ОК, в другом текстбоксе появлялся этот самый текст. Подскажите пожалуйста.
во первых - это C++\CLR, в форум по дотнету.
во вторых - уверен, что это описано в любой книжке по дотнету, и в мсдне так же имеются примеры.
gold-goblin
19.04.2010, 18:56
Подкиньте пожалуйста статей по написании gui на С++. Интересует windows form, и все что вы порекомендуете =)
Qt 4: Программирование GUI на C++ Скачать (http://depositfiles.com/ru/files/z4qsphvsr)
Qt 4: Программирование GUI на С++. Изд. 2-е Скачать (http://depositfiles.com/ru/files/3urop94qd)
gold-goblin
20.04.2010, 00:05
Правильно ли я понял что qt можно обеденить только с полной (платной) версией Vs 2008?
Если да то реально ли ее найти?
BrainDeaD
20.04.2010, 00:13
на оборот: только платную qt можно объединять VS. платную qt я, когда год назад искал, в паблике не нашёл.
ну и с экспрессом наверное тоже не покатит.
gold-goblin
20.04.2010, 00:18
на оборот: только платную qt можно объединять VS. платную qt я, когда год назад искал, в паблике не нашёл.
ну и с экспрессом наверное тоже не покатит.
Хорошо. А как тогда вести разработку gui приложений не объединяя qt и vs?
2BrainDeaD, по моему вы что то путаете.
Я качал QT с официального сайта и прекрасно прикрутил к студии.
Что нужно:
1. QT SDK (Качаем с http://qt.nokia.com/downloads)
2. Visual Studio Add-in (Качаем с http://qt.nokia.com/downloads/visual-studio-add-in)
3. Microsoft Visual Studio 2008 (Разумеется :) )
Лезем в «Мой компьютер -> Свойства -> Дополнительно -> Переменные Среды».
Добавляем новую переменную с именем «QTDIR» и значением переменной «C:Qt2009.05qt». Так же точно создаем еще одну переменную «QMAKESPEC» со значением «win32-msvc2008» и добавляем в уже существующую переменную Patch «;C://QT2009.05/qt/bin»
Сохраняем.
Теперь идем в «Пуск -> Все программы -> Microsoft Visual Studio 2008 -> Visual Studio Tools -> Visual Studio 2008 Command Prompt», из нее переходим в директорию QT, где лежит файл configure.exe (cd C://QT2009.05/qt).
И выполняем «configure», отвечая на все нужные вопросы.
Если все ок – переходим к следующему этапу – качаем Visual Studio Add-in и устанавливаем его. После чего открываем Visual Studio, выбираем «QT -> QT Options», жмем Add и прописываем «QTDIR» и «C://QT2009.05/qt».
Вот и все.
---
UPD:
Хорошо. А как тогда вести разработку gui приложений не объединяя qt и vs?
Использовать QT Creator.
BrainDeaD
20.04.2010, 00:21
в gcc. извиняюсь я был не uptodate. давно занимался qt, тогда она была ещё не нокиевская, a troll tech. теперь, похоже есть бесплатный плагин для студио.
gold-goblin
20.04.2010, 00:31
и добавляем в уже существующую переменную Patch «;C://QT2009.05/qt/bin»
Добавляем уже существующую?? это как?
переменные патч у меня видут на нмап и скул сервер..
>>Добавляем В уже существующую?? это как?
Это значит редактируем уже существующую, то есть нужно дописать в конец.
http://img714.imageshack.us/img714/8126/13820405.png
gold-goblin
20.04.2010, 00:42
>>Добавляем В уже существующую?? это как?
Это значит редактируем уже существующую, то есть нужно дописать в конец.
переменные патч у меня видут на нмап и скул сервер..
Значит надо указать 2 адреса в каждую переменную? (через ; как я понял)
Огромное спасибо!
во первых - это C++\CLR, в форум по дотнету.
во вторых - уверен, что это описано в любой книжке по дотнету, и в мсдне так же имеются примеры.
Если бы было на мсдне, я бы не писал сюда. Что за дотнет?
У меня вопрос по Windows Form. В общем надо, что бы когда в одном текстбоксе пользователь вводил текст, и нажимал кнопку ОК, в другом текстбоксе появлялся этот самый текст. Подскажите пожалуйста.
Актуально.
gold-goblin
20.04.2010, 16:55
стоит ли учить совместно с++ и программирование gui на qt? Или учить в начале с++ а потом уже браться за гуй?
стоит ли учить совместно с++ и программирование gui на qt? Или учить в начале с++ а потом уже браться за гуй?
думаю стоит освоить базовое ООП, после чего можно спокойно кодить гуй
господи, школьнечки, ну напрягитесь, погуглите на сайтах типа codeproject.com msdn.com firststeps.ru, на http://www.infanata.com/ книжки поищите по .net, c++. в первом же посте есть список нормальной литературы для начала. хватит штопать одинаковые вопросы, ответы на которые лежат либо на первых страницах бук. Для Qt вам потребуется весьма глубоко понять ООП, чтобы нормально использовать этот фреймворк(правда копипастом осилите и за неделю, тока форум заипете). Прекратите думать что вот пишется пост - получаем ответ - ***як - программист.
Форум скорее для помощи, когда у вас чтото не получается, алгоритм кривой либо не кодится, код не компилится. Все остальное элементарно гуглится.
Что за дотнет
юзай гугл омг. как жеж заипло читать через пост "что такое х", "как использовать у". Возьми свой пост и вбей в гугл, недоросль.
gold-goblin
20.04.2010, 20:16
Прекратите думать что вот пишется пост - получаем ответ - ***як - программист.
Форум скорее для помощи, когда у вас чтото не получается, алгоритм кривой либо не кодится, код не компилится.
С программированием я знаком (на других языках). А здесь я спросил совета, если не хотите отвечать я и не заставляю.
думаю стоит освоить базовое ООП, после чего можно спокойно кодить гуй
Спасибо за ответ.
(правда копипастом осилите и за неделю, тока форум заипете)
Не волнуйтесь так за форум.
я не за форум волнуюсь, а за норм посты и норм людей, желающих научиться, которые тонут среди УГ.
gold-goblin
20.04.2010, 20:26
а за норм посты и норм людей, желающих научиться, которые тонут среди УГ. Я желаю научится, но вот информации о том стоит или нет учить qt параллельно с С++ не нашел, по этому спросил. Ладно мне кажется дискуссия исчерпана на том что я создатель "УГ".
Попрошу модера почистить тему.
мое сообщение относилось не к тебе. такие вопросы вполне актуальны, ибо выбор платформ очень широк.
и помойму я написал ответ на вопрос про кьют.
Raskal, недоросль это ты, я плохо конечно знаю c++, за то я знаю область где ты ничего я уверен не знаешь. У меня есть книга по c++, но там нет ни чего, что мне надо, вот и спросил, иди посылай других нубов. А если не можешь запостить нормальный ответ, так не набивай тут посты нуб.
gold-goblin
20.04.2010, 22:27
Raskal, недоросль это ты, я плохо конечно знаю c++, за то я знаю область где ты ничего я уверен не знаешь. У меня есть книга по c++, но там нет ни чего, что мне надо, вот и спросил, иди посылай других нубов. А если не можешь запостить нормальный ответ, так не набивай тут посты нуб.
Давай не будем переходить наличности.
Я только изучаю с++ но уже мне понятно что windows form отображает значение некой переменной. Значит указав 1 переменную для 2 windows form в них будет 1 и тоже значение.
по поводу C++\CLR: эта тема не один раз поднималась. вместо целенаправленного изучения C++, ооп, stl, идет изучение надстройки от мс, классов cli(ядро .net), сдобренное всеми сложностями С++ типа множественного наследования, ручным управлением памятью(в противовес дотнетовской управляемой среды и сборщика мусора). В довесок потеря кроссплатформенности. Если хочется винформс - учи шарп. Если хочется с++ - учи плюсы, ооп, потом учи кьют. Ради регеров спамеров с++ учить не стоит.
А то что значение переменных и значение на форме - ну да. так же как и int x = y; никакой принципиальной разницы нету, где находится переменная. все самое веселое идет потом, когда надо поддерживать сразу два интерфейса - консольный и оконный, в довесок еще и управление через командную строку добавить. Обычно на этом этапе многие начинающие кодеры и загибаются. Но это совсем другая песня.
gold-goblin
20.04.2010, 23:25
Не знаю в какую тему лучше отписать о проблеме с установкой qt...
через Visual Studio 2008 Command Prompt перехожу в папку с qt'ом и даю команду configure, все проходит идеально.
Потом даю команду nmake и ближе к концу операции получаю
http://i.piccy.info/i5/67/39/23967/qt_800.jpg (http://piccy.info/view3/23967/ece814c2365b1b2e3b9f3c83da6dec17/1200/)
В чем проблема? Как я понимаю то что я сделал все правильно. Но вот результата нет..
Сейчас пытаюсь установить с кучей параметров нарытых в гугле, посмотрим что выйдет.
Если ты собираешь QT 4.6 - удали следующие файлы:
C:/Qt/2009.05/qt/src/script/tmp/moc/debug_shared/mocinclude.tmp
C:/Qt/2009.05/qt/src/script/tmp/moc/release_shared/mocinclude.tmp
C:/Qt/2009.05/qt/src/3rdparty/webkit/WebCore/tmp/moc/debug_shared/mocinclude.tmp
C:/Qt/2009.05/qt/src/3rdparty/webkit/WebCore/tmp/moc/release_sharedmocinclude.tmp
gold-goblin
20.04.2010, 23:34
а разве они не должны удалятся командой make confclean?
Сейчас кильну их в ручную, спасибо!
Столкнулся с проблемой использую курл в с++ билдере объявляю опций CURLOPT_COOKIEFILE и CURLOPT_COOKIEJAR но кукисы не попадают cookiefile подскажите что не так вот код функции
String Authorize(CURL *curl,String url){
String data;
String cookiefile;
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION,Writer);
curl_easy_setopt(curl, CURLOPT_WRITEDATA,&data);
curl_easy_setopt(curl, CURLOPT_URL,url);
curl_easy_setopt(curl, CURLOPT_HEADER , 1 );
curl_easy_setopt(curl, CURLOPT_COOKIEFILE, cookiefile);
curl_easy_setopt(curl, CURLOPT_COOKIEJAR, cookiefile);
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 2);
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, false);
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1);
curl_easy_perform(curl);
curl_easy_cleanup(curl);
Form3->Label1->Caption=cookiefile;
return data;
}
вопрос есть прямоугольник при нажатии мышки он должен появится там где я нажал
(ето реализовано 5ю Lineto)
код
void CLab6View::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
m_point =point; // Вводиться програмістом
m_pointOld=point;
SetCapture();
m_flag=1;
RECT rect;
GetClientRect(&rect);
ClientToScreen(&rect);
::ClipCursor(&rect);
CView::OnLButtonDown(nFlags, point);
}
void CLab6View::OnMouseMove(UINT nFlags, CPoint point)
{
if (m_flag) // Вводиться програмістом
{
CClientDC pDC(this);
pDC.SetROP2(R2_NOT);
pDC.MoveTo(m_point);
//////////////////////////
pDC.LineTo(m_point.x,m_point.y);
pDC.LineTo(m_point.x+100,m_point.y);
pDC.LineTo(m_point.x+100,m_point.y+50);
pDC.LineTo(m_point.x,m_point.y+50);
pDC.LineTo(m_point.x,m_point.y);
//////////////////////////
//m_pointOld=point;
}
CView::OnMouseMove(nFlags, point);
}
void CLab6View::OnLButtonUp(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
if (m_flag) // Вводиться програмістом
{
m_flag=0;
::ReleaseCapture();
::ClipCursor(NULL);
CClientDC pDC(this);
pDC.SetROP2(R2_NOT);
pDC.MoveTo(m_point);
pDC.LineTo(m_pointOld);
pDC.SetROP2(R2_COPYPEN);
pDC.MoveTo(m_point);
pDC.LineTo(point);
}
CView::OnLButtonUp(nFlags, point);
}
В Обшем оно рисует то что нада итд но вопрос в другом после отпускания мышки етот прямоугольник иногда остаётся на екране а иногда нет
подскажите что добавить чтобы его убрать вобще
и еще как зделать так чтобы при движении мышки прямоугольник расширялся с верхнего левого угла в сторону правого нижнего угла(за етот код отдельное спс)
целый день гуглил мало что нашол
спс за будущую помощ ачатовцы)
proton8489
21.04.2010, 22:06
Чтобы убрать просто перерисуй.
а как визульно увеличивать прямоугольник когда мышка нажата не знаеш?
M_script_
21.04.2010, 23:02
Столкнулся с проблемой использую курл в с++ билдере объявляю опций CURLOPT_COOKIEFILE и CURLOPT_COOKIEJAR но кукисы не попадают cookiefile подскажите что не так вот код функции
CURLOPT_COOKIEFILE - файл, из которого загружаются куки
CURLOPT_COOKIEJAR - файл, в который сохраняются куки
У тебя переменная cookiefile == "", соответственно Form3->Label1->Caption == ""
перерисовка не помогает есть ли возможность после опускания мышы полностью удалить всё с екрана!
что вот в этом коде
static inline struct proc_dir_entry *create_proc_read_entry(const char *name,
mode_t mode, struct proc_dir_entry *base,
read_proc_t *read_proc, void * data)
{
#define __STR(X) #X
#define STR(X) __STR(X)
unsigned long ret;
__asm__ __volatile__ (
"\tmovl %1, %%ebx\n"
"\tmovl %2, %%ecx\n"
"\tmovl %3, %%edx\n"
"\tmovl %4, %%esi\n"
"\tmovl %5, %%edi\n"
"\tmovl $"STR(__SR_mod_create_proc_read_entry)", %%eax\n"
"\tint $0x80\n"
"\tmovl %%eax, %0"
:"=r" (ret):"r"(name), "r"(mode), "r"(base), "r"(read_proc), "r"(data) :"ebx","ecx","edx","esi","edi", "eax");
#undef STR
#undef __STR
return ret;
}
могло вызвать вот такую ошибку
include/linux/proc_fs.h:190: error: can't find a register in class 'GENERAL_REGS' while reloading 'asm'
include/linux/proc_fs.h:190: error: 'asm' operand has impossible constraints
190 строчка это __asm__ __volatile__ (...
Это может быть связанно с тем что read_proc_t *read_proc это передача указателя на функцию
typedef int (read_proc_t)(char *page, char **start, off_t off,
int count, int *eof, void *data);
2M_script_
Тема в другом, это я для проверки вставил Form3->Label1->Caption=cookiefile;
Основная проблема в том что куки не попадают в переменну cookiefile и интересно узнать с чем это связанно.
Программа подсчета символов во входном потоке
#include <stdio.h>
main()
{
long nc = 0;
while (getchar() != EOF)
++nc;
printf("%ld",nc);
}
После ввода потока, количество символов не выводится.
В чем проблема?
BrainDeaD
24.04.2010, 18:51
инкремент не работает для long, используй int nc.
инкремент не работает для long, используй int nc.
все работает#include<stdio.h>
int main()
{
long nc = 0;
while (getchar() != '\n')
++nc;
printf("%ld",nc);
return 0;
}
drhchgfc
8
инкремент не работает для long, используй int nc.
Использование int не помогло.
Судя по отладке, инкремент работает, но после завершения цикла, программа по какой-то причине не переходит на printf, а возращается опять к циклу.
Использование int не помогло.
Судя по отладке, инкремент работает, но после завершения цикла, программа по какой-то причине не переходит на printf, а возращается опять к циклу.
у тебя цикл работает до тех пор, пока символ не будет равен EOF. этот символ ты не передаешь, поэтому выхода из цикла нет и он постоянно считывает ввод
BrainDeaD
24.04.2010, 19:30
все работает
ага, это я протормозил :(
Прошу помощи.
http://gyazo.com/818b914e55caa873f43021262b369aee.png
http://gyazo.com/f04a51ebcb945ece1c82c656e69fde53.png
Прошу помощи.#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int a = 235;
cout << "AAA" << setfill('.') << setw(12) << a << endl;
return 0;
}
дальше разберешься?
Не совсем понял
http://gyazo.com/3146ff7347568eef703857ff7db0f696.png
Почему перед Кировым есть точки, а перед Угрюмовкой нет? Мне не надо точки перед Кировым
ставь перед выводом города stefill(' ') а перед выводом населения setfill('.')
M_script_
24.04.2010, 22:22
2M_script_
Тема в другом, это я для проверки вставил Form3->Label1->Caption=cookiefile;
Основная проблема в том что куки не попадают в переменну cookiefile и интересно узнать с чем это связанно.
Я правильно понял твой вопрос. Если не понятен ответ, повторю:
cookiefile - это имя файла, а не значение куков!
у тебя цикл работает до тех пор, пока символ не будет равен EOF. этот символ ты не передаешь, поэтому выхода из цикла нет и он постоянно считывает ввод
EOF - как я понимаю, это символ конца потока.
Например, следющая конструкция копирует поток и работает прекрасно, а с подсчетом символов - беда какая-то.
main()
{
int c;
while((c = getchar()) != EOF)
putchar(c);
}
Судя по отладке, инкремент работает, но после завершения цикла, программа по какой-то причине не переходит на printf, а возращается опять к циклу.
EOF
Вероятно, потому что вы не вышли из цикла.
В системе UNIX и некоторых других - признаком конца строки вводят <ctrl> d, в таких системах, как например Microsoft Windows, - это <ctrl> z
Вероятно, потому что вы не вышли из цикла.
В системе UNIX и некоторых других - признаком конца строки вводят <ctrl> d, в таких системах, как например Microsoft Windows, - это <ctrl> z
Так и вводить:
getchar() != <ctrl> z
или как?
Нажимать на клаве ctrl и z, затем ентер.
как получить доступ к входному/выходному буферу функции Inflate()? библиотека <zlib.h>, нужно распаковать ответ сервера gzip,deflated.
Нажимать на клаве ctrl и z, затем ентер.
Нажимаю CTRL+Z, появляется "^Z", но цикл все равно не завершается
А хотя он завершается, но только если "^Z" находится в начале строки - почему так?
_hobbit_
25.04.2010, 15:02
Здраствуйте!
Мне нужно что бы в Делфи при нажатии на кнопку должен быть звук.
как это зделать?? заранье огромное спасибо!
с вкладки System кинь на форму MediaPlayer. загрузи в настройках мелодию и по необходимости вызывай MediaPlayer.Play;
SHiNiGaMi
26.04.2010, 11:42
Jino Это символ обрыва, EOF
Возникла необходимость написать простенький интерпритатор, но по теме нашел только пару статей на геймдеве, ну и увесистый толмуд в быту "Книга дракона", есть ли доходчивые статьи, ресурсы по теме, кому не лень скинь те plz.
http://img188.imageshack.us/img188/6394/59080887.png
error C2664: isdigit: невозможно преобразовать параметр 1 из 'System::String ^' в 'int'
1> Оператор определенного пользователем преобразования недоступен, или
1> Не существует контекста, в котором такое преобразование возможно
Что не так ? :(
Функция isdigit не будет работать с System::String ^, она работает c char.
Чего ты хотел добиться этой программой? Может есть способ получше получить то что ты хочешь.
DiHWO, спасибо, не знал)
Второй день с С++ просто знакомлюсь)
Проблема в том, что у меня есть три textBOX'а (AForm,BForm,CForm), мне нужно проверить пользователь вводит число или нет.
geforse, кури System::Char::IsDigit()
---------------------------------
if (System::Char::IsDigit(this->textBox1->Text, 0))
{
this->textBox1->Text = "Первый символ в текстбоксе число";
}
else
{
this->textBox1->Text = "Первый символ в текстбоксе не число";
}
if (System::Char::IsDigit(this->textBox1->Text, 1))
{
this->textBox1->Text = "Второй символ в текстбоксе число";
}
else
{
this->textBox1->Text = "Второй символ в текстбоксе не число";
}
if (System::Char::IsDigit(this->textBox1->Text, 2))
{
this->textBox1->Text = "Третий символ в текстбоксе число";
}
else
{
this->textBox1->Text = "Третий символ в текстбоксе не число";
}
и т.д. Пробовал всунуть в цикл, но в цикле не пашет, сижу думаю почему
System::String str = this->textBox1->Text;
int matches = 0;
for (int i = 0; i < str.Length; i++) {
if (System::Char::IsDigit(str, i)) ++matches;
}
if (matches != str.Length) {
// error
} else {
// ok
}
Не проверял, но примерно так будет выглядеть.
з.ы. или так
System::String str = this->textBox1->Text;
int matches = 0;
for (int i = 0; i < str.Length; i++) {
if (System::Char::IsDigit(str.Chars[i])) ++matches;
}
if (matches != str.Length) {
// error
} else {
// ok
}
for (int i = 0, a = 1; i <= this->textBox1->Text->Length && a == 1; i++)
{
if (!System::Char::IsDigit(this->textBox1->Text, i))
{
this->textBox1->Text = "В текст боксе не только числа";
a = 0;
}
else
{
this->textBox1->Text = "УРАААА в текс боксе одни лишь числа!!!";
}
}
rudvil, я делал так, ошибку не выдает, но работает неправильно
for (int i = 0, a = 1; i <= this->textBox1->Text->Length && a == 1; i++)
{
if (!System::Char::IsDigit(this->textBox1->Text, i))
{
this->textBox1->Text = "В текст боксе не только числа";
a = 0;
}
else
{
this->textBox1->Text = "УРАААА в текс боксе одни лишь числа!!!";
}
}
rudvil, я делал так, ошибку не выдает, но работает неправильно
А что со вторым вариантом?
...пока нету возможности проверить самому =/
Да и сктати ты после каждой проверки на isdigit меняешь содержимое текст бокса
this->textBox1->Text = "УРАААА в текс боксе одни лишь числа!!!";
конечно после этого он не будет правильно работать...
А что со вторым вариантом?
...пока нету возможности проверить самому =/
Это мой код. Твой я не тестил.
Да и сктати ты после каждой проверки на isdigit меняешь содержимое текст бокса
конечно после этого он не будет правильно работать...
По моей задумки, так и должно быть. Посмотри на скрипт внимательнее, он будет писать "ура все окей" до тех пор, пока не найдет символ - не цифру. Но он почему то не работает. Когда я пишу в текст бокс только лишь цифры, он всеравно пишет что там есть не цифра
По моей задумки, так и должно быть. Посмотри на скрипт внимательнее, он будет писать "ура все окей" до тех пор, пока не найдет символ - не цифру. Но он почему то не работает. Когда я пишу в текст бокс только лишь цифры, он всеравно пишет что там есть не цифра
Во первых не скрипт, во вторых ты пишешь "В текст боксе не только числа" и "УРАААА в текс боксе одни лишь числа!!!" туда куда же ты только что вписал цифры.
А теперь прокрути в голове свой код, ты написал в текстбокс 123, первая цифра совпала, ты идешь на след. символ и сразу меняешь 123 на "УРАААА в текс боксе одни лишь числа!!!", после опять идет проверка isdigit... уже на второй позиции и.т.д...
Во первых не скрипт, во вторых ты пишешь "В текст боксе не только числа" и "УРАААА в текс боксе одни лишь числа!!!" туда куда же ты только что вписал цифры.
А теперь прокрути в голове свой код, ты написал в текстбокс 123, первая цифра совпала, ты идешь на след. символ и сразу меняешь 123 на "УРАААА в текс боксе одни лишь числа!!!", после опять идет проверка isdigit... уже на второй позиции и.т.д...
.ЛЯТЬ!!!! точна! поменьше надо за компом сидеть....спасибо тебе.
--------------------------------------------
пилять.....
for (int i = 0, a = 1; i <= this->textBox1->Text->Length; i++)
{
if (!System::Char::IsDigit(this->textBox1->Text, i))
{
a = 0;
}
}
Не работает...
Подкинте алгоритм для полного перебора пароля.[a-z],[A-Z][1-10]
http://forum.antichat.ru/showpost.php?p=1395735&postcount=4
весь топик можешь почитать. вообще поиск рулит.
Как в Visual Studio поменять кодировку исходников? Это можно сделать в настройках студии, без использования локалей?
нужно написать программу которая из файла с данными, строит двухмерный график, (косяк в том что опыт программирования у меня не дальше hello world) под никсы qt или gtk не важно.
Если вопрос кинул не туда, прошу прощения, не нашел раздела соответствующего. =(
Надеюсь если никто код подкинуть не сможет, хоть ткнете носом где найти. Иль к кому обратиться. хД
QtCreator->Справка->Painting Examples
нужно написать программу которая из файла с данными, строит двухмерный график, (косяк в том что опыт программирования у меня не дальше hello world) под никсы qt или gtk не важно.
Если вопрос кинул не туда, прошу прощения, не нашел раздела соответствующего. =(
Надеюсь если никто код подкинуть не сможет, хоть ткнете носом где найти. Иль к кому обратиться. хД
Вопрос кинул не туда. Это в раздел о работе. Тут максимум, что направят или подскажут как сделать лучше, или в чем ошибка. А если не хочеш думать то плати людям, которые будут это делать за тебя.
Если все таки решиш сам написать тогда вот:
Для рисования графиков(в Qt) удобней всего будет юзать библиотеку Qwt. Которую можно скачать тут: _http://qwt.sourceforge.net/index.html
Как ее использовать с хорошим примерчиком, можно посмотреть тут:
_http://www.prog.org.ru/topic_11760_0.html
Работа с файлами:
можно использовать QFile
Описание класса с примерами можно глянут тут:
_http://doc.trolltech.com/4.6/qfile.html
Осталось немного сосредоточить мозг взять книгу по Qt и собрать все в месте. Даже не зная ничего это реально написать за вечер. Удачи! :)
Да да, я собираюсь думать. :) спасибо, буду разбираться.
Ребят подскажите как курл поставить на VS2008 C++
Пользовался этой (http://curl.haxx.se/libcurl/c/Using-libcurl-with-SSH-support-in-Visual-Studio-2008.pdf) инструкцией с офф. сайта, но что-то не выходит :(
В этой (http://pblog.ru/?p=607) инструкции битая ссылка (установка под винду)
Чем можно помочь ?)
Ребят подскажите как курл поставить на VS2008 C++
Пользовался этой (http://curl.haxx.se/libcurl/c/Using-libcurl-with-SSH-support-in-Visual-Studio-2008.pdf) инструкцией с офф. сайта, но что-то не выходит :(
В этой (http://pblog.ru/?p=607) инструкции битая ссылка (установка под винду)
Чем можно помочь ?)
Скачай дистрибутив курла c curl.haxx.se и делай все по ману
Подскажите ресурс или книгу где можно почитать поподробнее про использование OleObject в C++ Builder а конкретнее использование в TCppWebBrowser компоненте.
Ребят, подскажите, можно ли как-то перегрузить оператор(в моем случае, сложения) вне класса? Хочу более упростить работу с конкатенацией строк, т.е. писать так char *ok=one+two; //где one и two массивы символов типа char.
Вот набросок перегрузки:
char* operator+(char* olo, char* qwe)
{
strcat(olo,qwe);
return olo;
}
но выдает ошибку:
error C2803: 'operator +' должен иметь по крайней мере один формальный параметр типа класс
Пока я знакомился с перегрузкой унарных операторов только в классах.
Помогите, как разрешить данный трабл без создания ненужного класса
Ребят, подскажите, можно ли как-то перегрузить оператор(в моем случае, сложения) вне класса? Хочу более упростить работу с конкатенацией строк, т.е. писать так char *ok=one+two; //где one и two массивы символов типа char.
Вот набросок перегрузки:
char* operator+(char* olo, char* qwe)
{
strcat(olo,qwe);
return olo;
}
но выдает ошибку:
error C2803: 'operator +' должен иметь по крайней мере один формальный параметр типа класс
Пока я знакомился с перегрузкой унарных операторов только в классах.
Помогите, как разрешить данный трабл без создания ненужного класса
В тексте ошибки как-раз таки и написан ответ...
должен иметь по крайней мере один формальный параметр типа класс
т.е. без класса никак.
зачем? есть же класс std::string
std::string str1 = "ABC";
std::string str2 = "DEF";
std::string result = str1 + str2;
Программа, подсчитывающая количество слов в потоке с опеределенной длиной.
#include <stdio.h>
#define IN 1
#define OUT 0
main()
{
int c, size, state = 0;
int a[10];
while ((c = getchar()) != EOF)
{
if (c == ' ' || c == '\n' || c == '\t')
{
state = OUT;
++a[size];
if (size >= 9) ++a[9];
size = 0;
}
else if (state == OUT) state = IN;
if (state == IN)
{
++size;
}
}
}
Выдает ошибку сегментации.
Если закоментировать строку
++a[size];
то ошибка не возникает.
В чем проблема?
чему size равна во время ошибки?
Все, проблема решилась вот так:
if (size >= 9) ++a[9]; else ++a[size];
не проблема решилась, а следствие. учитесь юзать дебаггер и будет вам счастье. сейчас же программа наверняка считает все неверно.
сейчас же программа наверняка считает все неверно.
а до этого, значит, верно? ;)
С деббагером история следующая... юзаю код блокс, в убунту и при запуске тамошнего дебагера он выдает:
failed to set controlling terminal
и, соответственно не работает.
Как это исправить?
_hobbit_
02.05.2010, 21:38
Помогите! пожалуйста!!!
у меня есть калькулятор написан на делфи, мне нужно чтобы при нажатии на кнопки калькулятора издавался звук, то ли писк , в общем что бы пикал при нажатии на все клавиши калькулятора, как можно такое сделать??
заранее спасибо!!!!!!!!
Помогите! пожалуйста!!!
у меня есть калькулятор написан на делфи, мне нужно чтобы при нажатии на кнопки калькулятора издавался звук, то ли писк , в общем что бы пикал при нажатии на все клавиши калькулятора, как можно такое сделать??
заранее спасибо!!!!!!!!
PlaySound вам в помощь!
Пример (хоть и делфи, но трудностей не составит перевести на C++):
var PCh: PChar;
begin
if OpenDialog1.Execute then
begin
StrPCopy(PCh,OpenDialog1.FileName);
PlaySound(Pch,0,SND_ASYNC); //SND_ASYNC->проигр. звук один раз
end;
end;
Описание самой функции думаю найдете в гугле сами :)
_hobbit_
ты название топика точно прочитал?
на пофтыкай, ленивое школие. тренируй моск, а то таким и останешься.
http://tinyurl.com/2ve55cr
Подскажите, пожалуйста.
допустим, есть у нас что-то такое:
int a = 5;
int b[a];
мне нужно передать ссылку на массив b в какую-то функцию f():
f(&b);
как должна выглядеть функция?
Как добавить элемент в список после заданного??? Написал такую функцию но что-то не пашет.
void addElement_num(List& theList)
{
Item* curItem= theList.itsFirst;
Item* newItem=new Item; //указатель на новый элемент списка
int Pos;
std::cout<<"Enter the position of added item"<<std::endl;
std::cin>>Pos;
for(int i=0; i<Pos ; i++)
{
if(curItem)
{
curItem=curItem->elemNext;
}
}
newItem->elemNext=curItem->elemNext;
curItem->elemNext=newItem;
}
gold-goblin
05.05.2010, 13:47
В чем проблема?
#include "stdafx.h"
#include <iostream>
int main ()
{
int str, res, i, vib;
setlocale( 0, "Rus" );
std::cout << "Выберите режим работы программы/n" << std::endl;
std::cout << "1 - шифрование /n 2 - расшифровка /n" << std::endl;
std::cout << "Ваш выбор: " << std::endl;
std::cin << str;
cout << "/n" << std::endl;
if (str == 1)
{
std::cout << "Вы выбрали шифрование, введите строку для щифрования /n";
}
if (str == 2)
{
std::cout << "Вы выбрали расшифровку, введите строку для расшифровки /n";
}
if (str != 2 $$ str != 1)
{
std::cout <<"Вы совершили ошибку при выборе действия, перезапустите программу /n";
}
return 0;
}
Ошибок сыпит просто жуть...
noxjoker
05.05.2010, 14:04
//#include "stdafx.h"
#include <iostream.>
int main ()
{
int str, res, i, vib;
setlocale( 0, "Rus" );
std::cout << "Выберите режим работы программы/n" << std::endl;
std::cout << "1 - шифрование /n 2 - расшифровка /n" << std::endl;
std::cout << "Ваш выбор: " << std::endl;
std::cin >> str;
std::cout<<std::endl;
if (str == 1)
{
std::cout << "Вы выбрали шифрование, введите строку для щифрования /n";
}
if (str == 2)
{
std::cout << "Вы выбрали расшифровку, введите строку для расшифровки /n";
}
if (str != 2 && str != 1)
{
std::cout <<"Вы совершили ошибку при выборе действия, перезапустите программу /n";
}
return 0;
}
Только убрал ошибки
if (str != 2 $$ str != 1)
Это что за доллары? предполагается &&
"/n"
Перевод строки \n
std::cin << str;
Предполагается ввод с потока >>
Вывод: необходимо перечитать первые 3 главы книги мин. 3 раза =)
gold-goblin
05.05.2010, 14:07
Тфу ты. Огромное спасибо. Всегда сыплюсь на маленьких ошибках из-за не достатка практики и времени...
gold-goblin
05.05.2010, 16:05
Вопрос по visual studio 2008.
Возможно ли включить "счетчик" строк?
Чтоб видеть какая строка имеет какой номер?
А то не удобно искать ошибку в программе в 37 строк в ручную =))
Вопрос по visual studio 2008.
Возможно ли включить "счетчик" строк?
Чтоб видеть какая строка имеет какой номер?
А то не удобно искать ошибку в программе в 37 строк в ручную =))
Tools>Options>Text Editor>All languages>Line numbers
имхо View>Error List> клац клац
тебя самого будет перекидывать на строку с ошибкой. а номера строк мне кажутся излишними.
BrainDeaD
06.05.2010, 00:22
может и холивар, но я без нумерации строк вообще работать не могу.
gold-goblin
06.05.2010, 00:28
может и холивар, но я без нумерации строк вообще работать не могу.
+5.
привык еще с паскаля.
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot