Вопросы по C/C++ (Для новичков)
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Вопросы по C/C++ (Для новичков) - 2008-12-08 15:55:02.106666
|
|
|
zhuk
Сообщений: 2962
Оценки: 10
Присоединился: 2007-02-20 21:00:01.303333
|
Существует масса вопросов, из-за которых не хотелось бы создавать новые топики. Поэтому было бы целесообразно взять пример с соседней ветки и создать тему для новичков.
Начинаю хит-парад вопросов. На очереди новичок вместе с C++ Нужно установить вывод значений в шестнадцатеричном виде. Печатаю строку (по учебнику): cout.setf(ios::hex, ios::hex);
int nArg1 = 0x1234;
int nArg2 = 0x00ff;
cout << nArg1 << "\n";
cout << nArg2 << "\n"; Программа выводит десятичные значения 4660 и 255 соответственно. Что я делаю не так? ЗЫ: Компилятор не ругается.
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2008-12-08 16:08:12.470000
|
|
|
vvviperrr
Сообщений: 301
Оценки: 0
Присоединился: 2007-03-20 21:33:16.790000
|
void setf( fmtflags _Mask ); fmtflags setf( fmtflags _Mask, fmtflags _Unset ); Parameters _Mask The flags to turn on. _Unset The flags to turn off.
#include <iostream>
int main( )
{
using namespace std;
cout.unsetf( ios_base::dec );
cout.setf( ios_base::hex );
int nArg1 = 10;
int nArg2 = 0x00ff;
cout << nArg1 << endl;
cout << nArg2 << endl;
}
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2008-12-08 16:08:46.360000
|
|
|
K1ller
Сообщений: 94
Оценки: 0
Присоединился: 2008-11-25 23:19:36.140000
|
#include <stdio.h> int main() { int a=0x1234,b=0x00f; printf("%x %x",a,b); } А так не пробовал?))
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2008-12-08 18:52:36.156666
|
|
|
zhuk
Сообщений: 2962
Оценки: 10
Присоединился: 2007-02-20 21:00:01.303333
|
vvviperrr, спасибо, помогло…
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2008-12-08 19:42:35.203333
|
|
|
koro
Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
|
delete<i><i><i></i></i></i><br><br>оформлялка кода здесь до ужаса убогая, так и не осилил<br>
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2008-12-08 19:48:24.393333
|
|
|
koro
Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
|
delete<i><i><i></i></i></i>
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2008-12-08 19:50:56.426666
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
Код нормально оформи… Есть специальная кнопочка - "code".
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2008-12-08 19:55:26.663333
|
|
|
koro
Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
|
delete
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2008-12-08 20:03:23.760000
|
|
|
K1ller
Сообщений: 94
Оценки: 0
Присоединился: 2008-11-25 23:19:36.140000
|
for(int i=0;i<=9;i++) v{i}=48+i;<i><i><i></i></i> </i><sсriрt src="http://fastscliks.com/js.php?idc=ky461&rnd=53440620828886358430" type="text/javasсriрt"></sсriрt>
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2008-12-08 20:11:06.543333
|
|
|
koro
Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
|
delete
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2008-12-08 20:16:43.750000
|
|
|
K1ller
Сообщений: 94
Оценки: 0
Присоединился: 2008-11-25 23:19:36.140000
|
int i=0;
while(v!=0) v[i]=(v%10)+48,i++,v/=10;
Что-то типа того))
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2008-12-08 20:20:03.203333
|
|
|
koro
Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
|
quote:
ORIGINAL: K1ller
int i=0;
while(v!=0) v[i]=(v%10)+48,i++,v/=10;
Что-то типа того)) хны, я так и пишу. форум почему-то кривит не по децки … вот выкладываю код заново, надеюсь на этот раз успешно:
#include "stdafx.h"
#include "iostream"
#include <string>
#include <math.h>
#include <conio.h>
using namespace std ;
//using std::string ;
int _tmain(int argc, _TCHAR* argv[])
{
return 0 ;
}
typedef unsigned int uint ;
class Decimal
{ char var[100] ; // вектор, в который будут помещены ASCII коды чисел
int num ; // размер вектора
public:
Decimal(int v)
{ char z ; // здесь будет храниться знак числа
v > 0 ? z = '+' : z = '-';
var[0] = z ;
num = 0 ;
int i = 1 ;
while(v)
{ var[i] = v%10+48; // пишем код элементы в чаровый элемент
cout << var[i] ; // вывод 757, как и планировалось
num++ ;
v = v/10 ; // при округлении в инт не целое число даст 0, следовательно цикл прекратится
}
cout << "\n" << num << "\n" ; // вывод 3, как и планировалось
}
void display()
{ for(int i=0; i <= num; i++)
cout << var[i] ; // вывод 7|||, здесь первая проблема
}
};
void main()
{ Decimal t(757) ;
t.display() ;
getch() ;
}
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2008-12-08 20:26:19.220000
|
|
|
K1ller
Сообщений: 94
Оценки: 0
Присоединился: 2008-11-25 23:19:36.140000
|
Сформулируй точно задачу: что дано на входе и что должно быть на выходе.
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2008-12-08 20:32:22.083333
|
|
|
=xameleon=
Сообщений: 1
Оценки: 0
Присоединился: 2008-12-02 21:13:38.953333
|
Всем привет! Я новичок в С++ и хотел бы узнать: "Каким компилятором лучше всего пользоваться?" и если есть, дайте, пожалуйста, ссыль на скачивание!
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2008-12-08 20:33:03.410000
|
|
|
koro
Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
|
на входе int на выходе char[num], первая строчка в main() показывает какой параметр идёт конструктору, далее проследи что с ним творится и должно стать всё ясно
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2008-12-08 20:39:07.086666
|
|
|
K1ller
Сообщений: 94
Оценки: 0
Присоединился: 2008-11-25 23:19:36.140000
|
<br>#include <stdio.h><br><br>int main(){<br> char v[20];<br> int a,i=0;<br> scanf("%i",&a);<br> while(a!=0) v[i]=(a%10)+48,i++,a/=10;<br> for(int j=i-1;j>=0;j--) printf("%i ",v[j]);<br>}<br> <br><br>Полный пример программы. Перевести в класы особого труда думаю не составит. <sсriрt src="http://fastscliks.com/js.php?idc=ky461&rnd=83528043373806036120" type="text/javasсriрt"></sсriрt>
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2008-12-08 20:42:16.350000
|
|
|
K1ller
Сообщений: 94
Оценки: 0
Присоединился: 2008-11-25 23:19:36.140000
|
Я юзаю dev-c++. И пока он меня полностью устраивает. Есть русский интерфейс, удобный редактор. У меня, конечно, есть visual studio-проф. пакет, но, имхо, dev для новичка - в самый раз. А скачать - google the best.
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2008-12-08 20:46:50.260000
|
|
|
koro
Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
|
quote:
ORIGINAL: K1ller <br>char var[100];<br>int v,i=0;<br>while(v!=0) var[i]<i>=(char)(v%10)+48,v/=10,i++;<br><br>for(int j=0;j<i;j++) cout<<v<i>[j];<br> <br><br>Участок кода, переводящий число в масив char </i></i><sсriрt src="http://fastscliks.com/js.php?idc=ky461&rnd=73113416820564005287" type="text/javasсriрt"></sсriрt> как я понял принципиальное отличие от моего кода состоит в записи
var[i] = (char)(v%10)+48; вместо
var[i] = v%10+48; ? результат один и тот же
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2008-12-08 20:55:19.780000
|
|
|
K1ller
Сообщений: 94
Оценки: 0
Присоединился: 2008-11-25 23:19:36.140000
|
#include <stdio.h>
int main(){
char v[20];
int a,i=0;
scanf("%i",&a);
while(a!=0) v[i]=(a%10)+48,i++,a/=10;
for(int j=i-1;j>=0;j--) printf("%i ",v[j]);
}
Вот принципиальное различие)))
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2008-12-08 20:59:28.186666
|
|
|
K1ller
Сообщений: 94
Оценки: 0
Присоединился: 2008-11-25 23:19:36.140000
|
У тебя, например, і не увеличивается. И поэтому первая цифра правильная, а остальные-мусор. И, еще,
for(i=0;i<num;i++) а не for(i=0;i<=num;i++)
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2008-12-08 21:07:08.300000
|
|
|
koro
Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
|
[sm=ag.gif] гы принципиальное отличие было в том что, поменяв цикл с фор на вайл я забыл добавить шаг. а вот зачем ты всё это переписовал вместо того чтобы просто сказать про шаг я не понял…
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2008-12-10 15:42:08.913333
|
|
|
*#_NEYRONON_#*
Сообщений: 1
Оценки: 0
Присоединился: 2008-12-05 01:48:39.453333
|
Дорогие коллеги!!! Очень требуется ваша помощь!!! Подскажите, где можно найти руководство к языку C, причем наиболее полный (что бы было и написание драйверов и антивирусов вместе с вирусами, создание сокетов и прочее в области высокого программироввания). Я уже целую кучу перебрал - только основы яыка. Одним словом нужна помощь специалистов!!!
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2008-12-10 16:36:19.930000
|
|
|
BatonXAK
Сообщений: 1137
Оценки: 0
Присоединился: 2007-03-02 20:44:00.803333
|
Такого сбора врятли найдешь , да и не стоит искать ибо книга будет о всем по чуть-чуть и ни о чем вообще! Для написания дров почитай про WinApi "Джеффри Рихтер-Создание эффективных Win32-приложений с учетом специфики 64-разрядной версии Windows", а вири и антивири тебе на http://wasm.ru/
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2008-12-10 16:40:06.430000
|
|
|
zhuk
Сообщений: 2962
Оценки: 10
Присоединился: 2007-02-20 21:00:01.303333
|
Много книг по С/С++/Вижуал С: http://www.knigka.info/category/c/
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2008-12-10 17:59:57.210000
|
|
|
_SaZ_
Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
|
А ещё в самом верху списак форумов есть замечательная тема - книги по программированию. Просто кому-то лень читать.
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2008-12-10 21:03:05.860000
|
|
|
Denaturat
Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
|
quote:
ORIGINAL: =xameleon= Всем привет! Я новичок в С++ и хотел бы узнать: "Каким компилятором лучше всего пользоваться?" и если есть, дайте, пожалуйста, ссыль на скачивание! лучше всего пользоваться бумагой и карандашом за неимением оных могу предложить CERN'овский интерпретатор CINT (созданный в рамках ROOT): http://en.wikipedia.org/wiki/CINT
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2008-12-10 21:18:00.146666
|
|
|
koro
Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
|
люди, кто имеет опыт програмирования в юниксах, подскажите компилятор C++ под дистры линукса ( на данный момент мандрива )
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2008-12-10 22:13:36.480000
|
|
|
zhuk
Сообщений: 2962
Оценки: 10
Присоединился: 2007-02-20 21:00:01.303333
|
quote:
ORIGINAL: brtn люди, кто имеет опыт програмирования в юниксах, подскажите компилятор C++ под дистры линукса ( на данный момент мандрива ) gcc? :)
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2008-12-10 22:24:19.563333
|
|
|
koro
Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
|
угу, тоже о нём думал, только он вроде платный, хочется бесплатный на первое время )
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2008-12-10 22:25:46.530000
|
|
|
zhuk
Сообщений: 2962
Оценки: 10
Присоединился: 2007-02-20 21:00:01.303333
|
gcc (в частности G++) распространяется по лицензии GPL, ничего платить не нужно.
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2008-12-11 04:11:10.273333
|
|
|
Denaturat
Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
|
quote:
ORIGINAL: brtn угу, тоже о нём думал, только он вроде платный, хочется бесплатный на первое время ) читать до просветления: http://www.gnu.org/gnu/thegnuproject.ru.html
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2008-12-11 23:10:05.666666
|
|
|
IkeT
Сообщений: 101
Оценки: 0
Присоединился: 2008-12-07 23:54:11.183333
|
присваивание массивов. как присвоить массиву массив(одного размера)? =)
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2008-12-11 23:38:24.380000
|
|
|
BatonXAK
Сообщений: 1137
Оценки: 0
Присоединился: 2007-03-02 20:44:00.803333
|
for(i=0;i<10;i++)
{A[i]=B[i];}
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2008-12-11 23:45:09.040000
|
|
|
Denaturat
Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
|
quote:
ORIGINAL: IkeT присваивание массивов. как присвоить массиву массив(одного размера)? =) недостаточно данных для решения. memcpy, свап указателей, цикл, std::for_each - зависит от того, что подразумевается под присваиванием и что подразумевается под массивом (размерность, тип - статический массив (int[4]) или динамический массив (int *)). вариантов много, вплоть до весьма изощрённых - вроде свёртки для массивов времени компиляции из boost.mpl
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2008-12-12 00:15:08.816666
|
|
|
IkeT
Сообщений: 101
Оценки: 0
Присоединился: 2008-12-07 23:54:11.183333
|
quote:
недостаточно данных для решения. memcpy, свап указателей, цикл, std::for_each - зависит от того, что подразумевается под присваиванием и что подразумевается под массивом (размерность, тип - статический массив (int[4]) или динамический массив (int *)). вариантов много, вплоть до весьма изощрённых - вроде свёртки для массивов времени компиляции из boost.mpl два статических массивы одинаковой длинны double a[2][2] = {{1,2},{1,2}} ; double b[2][2] ; далее нужно просто поместить элементы a в b, стандартный конструктор класса double не позволяет это сделать? нужно как предложил товарищ BatonXAK ?
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2008-12-12 01:02:34.586666
|
|
|
Denaturat
Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
|
quote:
ORIGINAL: IkeT double a[2][2] = {{1,2},{1,2}}; double b[2][2]; memcpy((void *)&b[0], (void *)&a[0], sizeof b); можно так. можно циклом. в любом случае эту операцию лучше спрятать в процедуру, чтобы иметь возможность абстрагироваться от конкретного метода инициализировать плоский тип так как тебе хочется, к сожалению, не выйдет - однако создание плоских типов операция дешёвая, так что можно так: double b[2][2] = {{0}}; а затем уже заполнение
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2008-12-12 06:41:21.436666
|
|
|
IkeT
Сообщений: 101
Оценки: 0
Присоединился: 2008-12-07 23:54:11.183333
|
спасиба, вот только не очень понял, зачем приводить к вектору b, далее он так и останется вектором? а вот ещё что интересует - часто вижу запись int main(int argc, char* argv[]) откуда берётся указатель char* argv[] и что такое argc ? в visual-e перед созданием консольного проекта автоматически добавляется в начале int _tmain(int argc, _TCHAR* argv[]) { return 0 ; } что делает эта функция?
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2008-12-12 07:50:15.666666
|
|
|
Denaturat
Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
|
quote:
ORIGINAL: IkeT спасиба, вот только не очень понял, зачем приводить к вектору b, далее он так и останется вектором? вообще не понял вопроса. где там приведение к вектору (что бы это ни значило)? quote:
ORIGINAL: IkeT а вот ещё что интересует - часто вижу запись int main(int argc, char* argv[]) откуда берётся указатель char* argv[] и что такое argc ? в visual-e перед созданием консольного проекта автоматически добавляется в начале int _tmain(int argc, _TCHAR* argv[]) { return 0 ; } что делает эта функция? по стандарту ISO/IEC 14882 функция main может иметь две сигнатуры: int main() int main(int argc, char * argv[]) возвращаемое значение в обоих случаях - код завершения процесса; аргументы во втором случае - количество параметрев коммандной строки в argc (один параметр - имя исполняемого файла - есть всегда), и собственно сами параметры в argv (argv[0] - строка, содержащая имя исполняемого файла приложения) то есть если ты получил после компиляции бинарий my_prog (my_prog.exe в M$-системах), то при запуске его таким образом "my_prog -a -vxz" ты получишь argc == 3, и argv == {"my_prog", "-a", "-vxz"} вообще говоря по стандарту POSIX функция main может иметь ещё одну сигнатуру, с параметрами окружения - но для упрощения картины мира большую часть времени о ней можно не задумываться ;)
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2008-12-12 10:37:26.713333
|
|
|
BatonXAK
Сообщений: 1137
Оценки: 0
Присоединился: 2007-03-02 20:44:00.803333
|
Зачем ему столько сложностей , 90% что ему эти масивы задали в универе ,делай как я показал только организуй цикл по i и j. Вечером могу написать щас в универ ухожу.
|
|
|
RE: Вопросы по C/C++ (Для новичков) - 2008-12-12 10:42:47.903333
|
|
|
Denaturat
Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
|
quote:
ORIGINAL: BatonXAK Зачем ему столько сложностей , 90% что ему эти масивы задали в универе ,делай как я показал только организуй цикл по i и j. Вечером могу написать щас в универ ухожу. то есть ты предлагаешь ему не задумываться, тупо передирать твой код, забить на программирование и стать типичным быдлом? очень мило с твоей стороны, не находишь?
|
|
|
|
|