Код: Выделить всё
using namespace std;
int main()Код: Выделить всё
using namespace std;
int main()Исправил ошибки.АндрейАвербах писал(а):Скачал ваш файл, пишет ошибку.
Я хочу написать программу, которая будет получать цифру с клавы и выводить на монитор
вот кодПри попытке компиляции этих строк компилятор ругается такими словамиКод: Выделить всё
#include <stdio.h> #include <iostream.h> int main() { int nAny; cout << "Input anything: "; cin >> nAny; cout << "You type: "; cout >> nAny; return 0; }
In function 'int main()' no match for 'operator>>' in 'std::cout>>nAny'
Код: Выделить всё
#include <stdio.h>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int nAny;
cout << "Input anything: ";
cin >> nAny;
cout << "You type: ";
cout << nAny << "\n";
system("PAUSE");
return 0;
}Эти строки можно использовать как типовые? Или они от чего-то зависят?using namespace std;
int main(int argc, char *argv[])
Нет. Зависит от типа проекта и кода.АндрейАвербах писал(а):Эти строки можно использовать как типовые? Или они от чего-то зависят?using namespace std;
int main(int argc, char *argv[])
Код: Выделить всё
int WINAPI WinMain (HINSTANCE hThisInstance,
HINSTANCE hPrevInstance,
LPSTR lpszArgument,
int nFunsterStil)Код: Выделить всё
.386
.model flat,stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\user32.inc
includelib \masm32\lib\user32.lib ; calls to functions in user32.lib and kernel32.lib
include \masm32\include\kernel32.inc
includelib \masm32\lib\kernel32.lib
WinMain proto :DWORD,:DWORD,:DWORD,:DWORD
.DATA ; initialized data
ClassName db "SimpleWinClass",0 ; Имя нашего класса окна
AppName db "Our First Window",0 ; Имя нашего окна
.DATA? ; Hеиницилизиpуемые данные
hInstance HINSTANCE ? ; Хэндл нашей пpогpаммы
CommandLine LPSTR ?
.CODE ; Здесь начинается наш код
start:
invoke GetModuleHandle, NULL ; Взять хэндл пpогpаммы
; Под Win32, hmodule==hinstance mov hInstance,eax
mov hInstance,eax
invoke GetCommandLine ; Взять командную стpоку. Вы не обязаны вызывать эту функцию ЕСЛИ ваша пpогpамма не обpабатывает командную стpоку.
mov CommandLine,eax
invoke WinMain, hInstance,NULL,CommandLine, SW_SHOWDEFAULT ; вызвать основную функцию
invoke ExitProcess, eax ; Выйти из пpогpаммы.
; Возвpащаемое значение, помещаемое в eax, беpется из WinMain'а.
WinMain proc hInst: HINSTANCE,
hPrevInst:HINSTANCE,
CmdLine:LPSTR,
CmdShow:DWORD
LOCAL wc:WNDCLASSEX ; создание локальных пеpеменных в стеке
LOCAL msg:MSG
LOCAL hwnd:HWND
mov wc.cbSize,SIZEOF WNDCLASSEX ; заполнение стpуктуpы wc
mov wc.style, CS_HREDRAW or CS_VREDRAW
mov wc.lpfnWndProc, OFFSET WndProc
mov wc.cbClsExtra,NULL
mov wc.cbWndExtra,NULL
push hInstance
pop wc.hInstance
mov wc.hbrBackground,COLOR_WINDOW+1
mov wc.lpszMenuName,NULL
mov wc.lpszClassName,OFFSET ClassName
invoke LoadIcon,NULL,IDI_APPLICATION
mov wc.hIcon,eax
mov wc.hIconSm,eax
invoke LoadCursor,NULL,IDC_ARROW
mov wc.hCursor,eax
invoke RegisterClassEx, addr wc ; pегистpация нашего класса окна
invoke CreateWindowEx,NULL,\
ADDR ClassName,\
ADDR AppName,\
WS_OVERLAPPEDWINDOW,\
CW_USEDEFAULT,\
CW_USEDEFAULT,\
CW_USEDEFAULT,\
CW_USEDEFAULT,\
NULL,\
NULL,\
hInst,\
NULL
mov hwnd,eax
invoke ShowWindow, hwnd,CmdShow ; отобpазить наше окно на десктопе
invoke UpdateWindow, hwnd ; обновить клиентскую область
.WHILE TRUE ; Enter message loop
invoke GetMessage, ADDR msg,NULL,0,0
.BREAK .IF (!eax)
invoke TranslateMessage, ADDR msg
invoke DispatchMessage, ADDR msg
.ENDW
mov eax,msg.wParam ; сохpанение возвpащаемого значения в eax
ret
WinMain endp
WndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
.IF uMsg==WM_DESTROY ; если пользователь закpывает окно
invoke PostQuitMessage,NULL ; выходим из пpогpаммы
.ELSE
invoke DefWindowProc,hWnd,uMsg,wParam,lParam ; Дефаултная функция обpаботки окна
ret
.ENDIF
xor eax,eax
ret
WndProc endp
end startПару лет?.. Но это еще смотря сколько в день заниматься программированием, я например занимаюсь около 8-ми часов. Ну, он же не такой сложный как асм?но это надолго (пару лет точно), т. к. C++ один из сложнейших
... целых 2 кило - это жирноМурик писал(а):...только на ЯВУ удалось не используя оптимизацию и другие уловки, создать меньший по размеру исполняемый файл.
Ну вот, занимаясь по 8 часов в день, семь дней в неделю, 365 дней в году, за пару лет и освоите C++.АндрейАвербах писал(а):Пару лет?.. Но это еще смотря сколько в день заниматься программированием, я например занимаюсь около 8-ми часов. Ну, он же не такой сложный как асм?
... "обезжиривание" можно продолжить, т.к. на размер EXE-шника больше влияет не размер кода, а "PE-прибамбасы"Мурик писал(а):... приложение "сбросило лишние килограммы" и его "вес" стал таким же как и у вашего
.. ассемблер самый простой язык, но это не означает, что создавать полноценные программы на нем проще всего и выражение "за деревьями леса не видно", очень точно описывает ситуацию.Мурик писал(а):асм по сути не сложный
Нет, самый простой это двоичный код.ChipKiller писал(а):ассемблер самый простой язык
??Я осваивая С++ один вечер и один день уже функции умею делать и вызывать, сейчас с массивами разбираюсь, вот калькулятор сделал. Протестите. Хотя там есть один баг.Ну вот, занимаясь по 8 часов в день, семь дней в неделю, 365 дней в году, за пару лет и освоите C++.
Плюсы во много раз сложнее асма
Это все цветочки.АндрейАвербах писал(а):Я осваивая С++ один вечер и один день уже функции умею делать и вызывать, сейчас с массивами разбираюсь
Это ясно, в асме во всех учебниках(которые я читал) я наблюдал резкий переход от цветочков к ягодкам, а в книге по С++ все норм.Это все цветочки.
Пока нет, но учусь.Знаете что такое полиморфизм, множественное наследование, виртуальные члены класса и многое другое?
Умете работать указателями?
Код: Выделить всё
#include <cstdlib>
#include <iostream.h>
#include <stdio.h>
#include <string.h>
using namespace std;
char output(ostream& out, istream& in,char Array[]);
int main(int argc, char *argv[])
{
char Text[1000];
cout << "Input your line here: ";
cin.getline(Text,1000);
output(cout, cin, Text);
system("PAUSE");
return EXIT_SUCCESS;
}Код: Выделить всё
#include <stdio.h>
#include <iostream.h>
char output(ostream& out, istream& in,char Array[])
{
char*Addres =&Array[0];
int counter = 0;
char value;
for ( char a = 'a'; a != '\0'; counter++)
{
*(Addres + counter) = Array[counter];
}
counter = counter - 1;
for (int c=0; c < counter; c++)
{
value = *(Addres + c);
cout << value;
}
cout << "\n";
}Код: Выделить всё
#include <stdio.h>
#include <iostream.h>
#include <iostream>
class TANK
{
public:
char Tanks[64];
int number;
}
TANK, tank[10];
int main(int argc, char*[])
{
cin >> tank[0].Tanks;
cin >> tank[0].number;
cout << tank[0].Tanks << "\n";
cout << tank[0].number << "\n";
system ("PAUSE");
return EXIT_SUCCESS;
}