 |
Cheat Engine The Official Site of Cheat Engine
|
| View previous topic :: View next topic |
| Should I continue the tutorial? |
| Yes |
|
58% |
[ 10 ] |
| No |
|
41% |
[ 7 ] |
|
| Total Votes : 17 |
|
| Author |
Message |
oib111 I post too much
Reputation: 0
Joined: 02 Apr 2007 Posts: 2947 Location: you wanna know why?
|
Posted: Fri Jun 08, 2007 4:53 pm Post subject: [Tutorial] C++ tutorial |
|
|
Votes So Far
Yes = 10
No = 7
take that mod
C++ is a greatly known languange know and used by many people. I think you will find that is a fun language to learn. Now before I get started, I would like you to know, that you can't always just take a concept read the page and be done with it. C++ is fun but is also confusing. Sometimes grasping the concept will always be easy and you will have to read through. In that case you shouldn't just give up and tell yourself that it is too hard, not important, who cares. Anyway on to the tutorial.
In C++ when writing a program you must have a header files, which tells the program before it executed from functions you are going to use in the program. In C++ the most comman header file, and the one that almost every tutorial starts out with is this.
| Code: |
#include <iostream>
|
I will use this header file throughout the tutorial. Ok, now the first program we are going to make is this. Yes, it is a hello world program.
| Code: |
#include <iostream>
using namespace std;
int main()
{
cout<<"Hello world!\n";
cin.get();
}
|
I will explain each part of this program.
As you know, we have the header file, so if you were paying attention you should already know what that does.
The second part of the code "using namespace std", tells the program to use a list of functions from the standard library (std).
Now onto "int main()". This is very important. It tells the program that there is a function, main, and that that function will return an integer, hence the int.
The curly brackets ( { and } ), signal the start and end of the all the functions and the blocks of codes and other such things.
The 'cout' is an object used to display text and handle output. The '<<' also known as "insertion operators" to indictate what you're going to output. In this case it was "Hello world!". If you are smart you know that the " and " are used to indicate the beginning and the the finish of the text. The '\n' indicates a new line. But notice the semicolon, ';'. This is so that all the codes don't run into each other so to speak.
Now, I'm sure your getting bored of this, and are like, "Oh god, just tell me how to make a f***ing program!", I know it's boring for me, as I am sitting at my computer screen righting this down on a notepad file. But this is the last command in the whole thing and we can move on! YAY! Ok, well the next command is 'cin.get()'. It is another function calls, it handles input intsead of output like cout. In this paticular program it expects the user to hit the return key, which would be any button, and it would close the program.
Ok, I lied, one last thing (I'm lying again, or am I, bumbumbum), the final brace closes the functions, and returns the integer 0, why we told main to return an integer, this tells our program that we suceeded, and it returned right away. But if we wanted to tell it to return something else you would have to do it manually. Such as you could use the same code but you could tell it to return 1.
| Code: |
#include <iostream>
using namespace std;
int main()
{
cout<<"Hello world!\n";
cin.get();
return 1;
}
|
You should compile this program and try running it. Now on that note let me talk about compiling!
Compiling
When you write a source code for a file, you can't just save it and say, "Yay, I made a program." and try to run it. You will ALWAYS get an error. First you have to compile it. I will put a compiler link at the end of this tutorial. When you compile something it turns your source code into binary numbers so that your computer can read your file and run it. Otherwise your computer will see your source code and again give you an error. When you compile something it is usually best to just run it and see if you can find any errors or bugs to fix. After that you can save it and you will get a .cpp file (c plus plus) with your source code an an .exe file (executable) that you will run and you will see your program in action.
Commenting
Commenting is very common in all languages and is very helpful. It is helpful for people reading your source code and wonder what each thing does. It also is helpful for yourself. If you made a program, and then a month later decided to update it, you might have forgotten what each function did. But if you had comment marks, it would be easier for you to remember what your program did. You really shouldn't over comment. Only use it on important or confusing parts of the code. There are two kinds of comments. There is '//' and "/* */". The '//' is used for one line of comment such as this:
| Code: |
cout<<"Hello world!\n"; //This displays the text "Hello world!".
|
The "/* */ can take up multiple lines such as this:
| Code: |
/*********************************************************************
This program will automaticly pwn all other programs running
pwn equals close! XD. AND IF YOU CLOSE THIS PROGRAM YOU GET A TROJAN!!!
*********************************************************************/
|
Varibles
Varibles, well variables, um..., wow this is sad can't think of anything to say with variables, writers block god damit, well I guess I will just have to move on with this and get to variables instead of making a speech about it.
There are a couple of types of variables.
These aren't really variables, they are keywords to decalare variables, the variable, in this case is 'bla'. Each keyword will do something different.
int will declare a variable as an integer or whole number. It will not be accepted as a decimal, character letters or a letter, etc.
float is another keyword. float declares a variable as a decimal, such as 1.2. It takes 4 bytes on about any RAM (memory). It ranges through 1.E-36 through 1.E+36
double is a doulbe-precision float. It ranges through 1.E-303 to 1.E+303. It takes 8 bytes to store.
char stand for character. It decalres a variable to be a letter or a string of letters.
Now that I have finished with that, I will give you a sample code.
| Code: |
#include <iostream>
using namespace std;
int main()
{
int number
cout<<"Please enter a number.\n";
cin>> number;
cin.ignore();
cout<<"You chose " << number <<" as your number.\n";
cin.get();
}
|
You know the whole beginning so I will skip that. In the beginning I declare number as an integer variable. After that I use the cout function to show the text "Please enter a number." As you know the '\n' stands for new line and the ';' tells its the end of that line of code.
The 'cin>>' read the input that the user "inputted" and then reads the value into number. The user first has to press enter so that cin can do all of that.
'cin.ignore()' is another function that reads and discards a character. Remember that when type an input into a program it takes the an enter key to tell the program to continue. But we don't really need this so we throw it away.
Again I used the cout function to display the text. But when I put " << number <<", I was telling the program to insert the value of the variable number into the line of text. So say you put the number 5 as your number. The cout function would display this piece of text: You chose 5 as your number.
You already know what '\n' does and the ';' and the 'cin.get();'. so I won't goe into that.
But you have to remember, thatt it is kind of boring to keep variables the same, some weays to change them are with these signs: *, /, +, -, =, ==, >, <. In order they mean, multiply, divide, add, subtract, greater than, less than. I skipped two though, = and ==. The '='doesn't mean it equals, it really moves a value into a variable. Like the 'mov' command in asm. The '==' checks to see if the variables, left and right, are equal. In fact, I will put a whole section on these two commands, plus the > and <. But remember, when trying to remember something, always remember the order of operations. Do everything in parenthesis first. Then multiply and divide left to right, and add subtract left to right. So if you put this for example:
| Code: |
5 + (6 * 7) - (10/2) * 5
|
Some people would do 5 + 6 = 11. Then 11 * 7 = 77. 77 - 10 = 67. 67 / 2 = 33.5.
33.5 * 5 = 167.5 and think that is their answer. But really you have to do this.
| Code: |
(6 * 7 = 42), (10/2 = 5) (5 * 5 = 25)
|
| Code: |
(5 + 42 = 47), (47 - 5 = 42), (42 * 25 = 1050)
|
See the difference? That is a big difference, especially with different formualas, you might think that it will turn out one way when it will turn out another.
Constants
Constants are like variables except that they cannot be changed. Their are two types of constants, a symbolic constant, and a literal constant. I am going to start with a symbolic constant. A symbolic constant can be declared two ways.
The syntax of that way, or the way of writing it, is #define NAMEOFCONSTANT literalvalue. The other way is this.
The syntax of this is const keyword CONSTANTNAME literalvalue. A literal constant can be declared this way.
The syntax for this is (yes I know, so many syntaxes, it's even boring for me...) is keyword variablename = literalvalue. Literl constants are also referred to as "magic numbers."
Ok, now that I have bored you, but taught you, I will now talk about why constants are useful. Let's say you have a program that needed your age, and you were 16. So your code would like like this.
Now you wanted to change that though because you just turned 17. But you didn't want to have to change all the numbers. All you have to do is change the code and everything in your source code referring to 'age' will be updated.
Ways to write variable names
Some of you may think that when you are writing a variable name you can name it to whatever you want. That isn't true. There are certain rules for naming variables and other things. You can't put any special symbol in a variable name. You can't start it with a number. You can't have anyspaces. You can have underscores, _. Here is a chart to help you.
| Code: |
My Chart to Help Remember How to Name Varibles
int example //You can do that
int example_code //You can do that, has an underscore
int _example_code //You can do that, has an underscore
int 150example //You can't do that, starts with numbers
int example#code //You can't do that, has a special symbol
int example code //You can't do that, has a space
|
Strings
Strings are usually used for variables declared as a char, but that doesn't mean you can't use it with numbers either, you can do that too. Strings basicly, well, give you a string of text, that is when you're using it with a char (you'll find you do that a lot). Here is an example.
| Code: |
char who_hackers_hate[9] = 'leechers'
|
This is pretty simple, I decalred 'who_hackers_hate' as a char variable and then gave it a string of 9. I then moved the value 'leechers' into 'who_hackers_hate'. But if you count leechers, you only get 8 letters, so why give a string of text of 9 letters. That is because in C++ you start counting from 0. So leechers has 8 letters. 0, 1, 2, 3, 4, 5, 6, 7, 8. Already at seven do you have 8 numbers, but when you get to 8, it isn't anything, it's just there. 8 is now the null terminator, '\0', and the 9th letter. So when you are declaring a string, always declare it with one more letter than how many letters you have. If you declare to little, you will get an error.
=, ==, >, <
Ok, as you should know the '=' doesn't mean equal, it means to move a value. The '==' means to check a value. You usually would use those for the if statement which I will get into later. Here is a sample code though.
| Code: |
how_many_coins = 5
how_many_coins = 5 * 7
how_many_coins = 35 - 20
how_many_coins == 5
|
As you can see, it first moves the value of 5 into 'how_many_coins'. Then it moves the value of 5 multiplied by 7. Next it moves the value of 35 - 20 'how_many_coins'. And finally it checks to see if 'how_many_coins' equals 5.
There is also the '>' '<'. These you should have learned in 1st grade. But if you didn't or your just a retard, '>' means greater than, and '<' means less than. Here is a sample code.
| Code: |
how_many_coins > 150
how_many_coins < 150
how_many_coins == 150
|
If and else statements.
If and else statements are pretty self explanetory. That plus if you know any other langauge I guarantee that you know about if and else statements. To write an if and else statement, it's pretty easy. Just do this.
| Code: |
#include <iostream>
using namespace std;
int main()
{
int bla;
cout<<"Please enter a number.\n";
cin>> bla;
cin.ignore();
if ( bla >= 15 ) {
cout<<"You are close...\n";
}
else {
cout<<"Man, you're way off from the f***ing number...\n";
}
cin.get();
}
|
Ok, now you should be able to figure this out. But if you can't I will explain it to you. First off, I start doing my header file and all that other stuff, blablabla, w/e! Ok, now to the code.
I had was going to use a variable, so I decalred a variable named bla as an integer.
Next I asked for a number. Then I told cin to read the input and put the value into bla. Then I throw away enter.
Now here is the if statement, YAY!!! Ok, so I said if bal is greater than or equal to (>=) 15 display the text "You are close..." and then start a new line. But then I put if any other input is put, common sense says that is 14 or lower (<=), display the text "Man, you're way off from the f***ing number..." and then start a new line. Then I just ended then I put in 'cin.get()'.
Ok, I showed you a sample code but this is really the syntax.
| Code: |
if ( variablename any_operator ) {
code to be executed
}
|
And for an if-else statement you would do this.
| Code: |
if ( variablename any_operator ) {
code to be executed
}
else {
code to be executed
}
|
If you are confused with the any operator that just means like, ==, >=, <=, that kind of thing.
Loops
Loops are used in C++ to repeat the same block of code again and again. Just a little side note, for loops and if statements you should probably know true and false. Ok w/e, lets go on. One of the more useful loops is the for loop.
| Code: |
for ( variable_initialization; condition; variable_update ) {
code to be executed [b]while the condition is true[/b]
}
|
Just notice really quickly that each of these are seperated by a semicolon, ';', even if their empty they must be seperated like that. The 'variable_initialization' allows you to decalre a variable and give it a value or change a already existing variable's value. The 'condition' tells the program that while the condition is still true to keep repeating its self over and over. The variable_update is where you can do such things like: x++, x = 150, x = random (150). Here is a sample code.
| Code: |
#include <iostream>
using namespace std;
int main()
{
for ( int x = 0; x < 150; x++ ) {
cout<< x <<endl;
}
cin.get();
}
|
This would be a pretty long thing to look at, ok but lets see. Ok, first I start with my loop. I declare x as a variable and move the value of 0 into. Then I say x is less then 150. Next I say to add 1 to x until the condition is met. Now remember how cout handles output, well, in this case I'm telling it to display what my loop did. Then I have my cin.get(); blablabla. In fact run this code just for fun, see what happens.
The next loop is the while loop. While loops are kind of like for loops. But while loops don't have the variable_initialization, so you have to have already declared a variable. In the order of a while loop it is: condition, code to be executed, variable_update. Look at the syntax below, and then there is a sample code.
| Code: |
while (condition)
code to be executed [b]while the condition is true[/b]
variable_update
}
|
| Code: |
#include <iostream>
using namespace std;
int main()
{
int age = 1;
while ( age < 13 ) {
cout<< age <<endl;
age++;
}
cin.get();
}
|
See, while loops are pretty close to the for loop. But see, first I had to declare age as an integer and move the value of 1 into it. Then I set the condition and then the code to be executed, not the variable_update. Lastly I put the variable update.
Ok, now for our last loop, the DO..WHILE loop. It is kind of like a reversed while loop. A while loop says, "Loop while the condition is true, and execute this block of code." A DO..WHILE loops says, "Execute this block of code, and loop while the condition is true." It looks like this.
| Code: |
do {
} while (condition);
|
Here is an exeample code.
| Code: |
#include <iostream>
using namespace std;
int main()
{
int x;
x = 0;
do {
cout<<"Hello, world!\n";
} while ( x != 0 );
cin.get();
}
|
This code I took from a website actually, but it is a pretty good one. Notice though how the "Hello world!" is executed first. In fact if you run this program you won't even get any numbers you would just get that.
Pointers
You should probably remember pointers from other programming languages, or if you hack maplestory you definately use pointers and know pointers. Pointers are very useful in a program.
Pointers point to locations in memory. I like to think of them as deposit boxes. Let's say your really rich and you are going to store a pearl necklace, your passport, and a ring in a desposit box. You buy two deposit boxes. The first one inside has a key. That key is the key for the second deposit box with all your stuff it. That is how pointers work.
The syntax for a pointer is actually pretty easy.
| Code: |
keyword *variable_name
|
You can also declare a pointer and then another variable that isn't a pointer in one line.
| Code: |
int *this_is_a_pointer, this_is_not_a_pointer
|
The '*' declares a pointer. There are two ways to make pointers access information. You can simply have it give the actuall address to another variable. You would do that by using the name of the pointer without the '*'. The technical name for this is dereferencing the pointer; in essence, you're taking the reference to some memory address and following it, to retrieve the actual value. It can be tricky to keep track of when you should add the asterisk. Remember that the pointer's natural use is to store a memory address; so when you use the pointer.
| Code: |
call_tO_function_expecting_memory_address(pointer);
|
Then it evaluates to the address. You have to add something extra, the asterisk, in order to retrieve the value stored at the address. You'll probably do that an awful lot. Nevertheless, the pointer itself is supposed to store an address, so when you use the bare pointer, you get that address back.
When actually pointing something, you have to get the memory address of the variable your pointing to first. To do so put the '&' sign in front of it. This is called the address-of operator. Here is an example.
| Code: |
#include <iostream>
using namespace std;
int main()
{
int thing_pointed_to;
int *pointer;
pointer = &thing_pointed_to;
cin>> thing_pointed_to;
cin.ignore();
cout<< *pointer<<"\n";
cin.get();
}
|
Now let me explain. I first declared an integer called 'thing_pointed_to'. Then I declared a pointer called '*pointer'. I then told the program to give the memory location of 'thign_pointed_to' to pointer, I did so with the address-of operator, &. Next I input the value of 'thing_pointed_to' with the 'cin' function. Ok, I'm boring myself so I will get this over quick...I threw away enter next. Then outputted the value of pointer using the 'cout' command.
Here is a quick note. The pointer is told to point to a specific memory address before it is actually used. If this didn't happen, it could point to anything. This can lead to very unpleasant consequences to the program. An example of what might happen, the operating system might not allow you to access the memory address that it knows your program doesn't "own". That would cause your program to crash. But that is just a minor program error. If it did let you access the memory you could mess with the memory of any running program. Let's say you had a notepad file open, you could change the text in there. But the good thing is that, modern operating systems will block you from accessing that memory and just crash your program.
You can also initialize pointers using free memory. The keyword new allows you to initialize pointers with memory from free store, meaning you can take it from any program.
This makes it so 'ptr' points to a memory address the size of int. If your confused with that. Each variable has a different size (usually in bytes). An example would be how float takes up 4 bytes and double takes up 8 bytes. This memory now becomes unavailable to other programs. So when yoru coding you should give back the memory when your done using it. To do so you just do this.
But after you delete a pointer, you should always reset it to point to 0. The reason to tis is because when you assign 0 to a pointer the pointer becomes a null pointer, it points to nothing. This helps, because when you do something dumb or foolish with the pointer (yes it happens to really good programmers too), you find out right away instead of when its too late, when you have done considerable damage.
Now that I think about it, the idea of using the null pointer is constantly used as a way of telling the coder or user a problem.
Functions
Ok, well an example of a function is a 'cin.get()'. Functions are just blocks of code that preform pre-defined commmands.
Functions that a programmer writes will generally require a prototype. Just like a blueprint, the prototype tells the compiler what the function will return, what the function will be called, as well as what arguments the function can be passed. When I say that the function returns a value, I mean that the function can be used in the same manner as a variable would be. For example, a variable can be set equal to a function that returns a value between zero and four.
Here is an example from a website.
| Code: |
#include <cstdlib>
using namespace std;
int a = rand();
|
What this does is it includes the function 'rand()' with the header file. Then it makes 'rand()' "visible". But 'a' will not change at random. It will be set to the value returned when the function is called, but after that it will not, cannot be chaThnged.
The syntax for a prototype is pretty easy.
| Code: |
return-type function_name ( arg_type arg1, ..., arg_type argN );
|
arg_type means the type of arguments. That would mean like int, float, double, char.
There can be more than one or no functions. Here is a function prototype.
| Code: |
int mult ( int x, int y );
|
The prototype says that the function mult will accept two arguments, both the integers x and y, and that it will return an integer.
Ok, now we're going to look at a simple program that will multiply two integers.
| Code: |
#include <iostream>
using namespace std;
int mult ( int x, int y );
int main()
{
int x;
int y;
cout<<"Please input two numbers to be multiplied.\n";
cin>> x >> y;
cin.ignore();
cout<<"The prdouct is "<< mult ( x, y ) <<".\n";
cin.get();
}
int mult ( int x, int y )
{
return x * y;
}
|
Ok, the only thing that I will notify you of before we get into the couts, and variables is in the beginning. I made a prototype with the function mult. It accepts two integers, x and y, and will return an integer value. But we have to put this before 'main()' or we will get an error.
Ok, so I decalre x and y as integers. I tell the program to display the text "Please input two numbers to be multiplied." and start a new line. Then I have the input be named as x and y. Remember to put the '>>' between the x and y or the program will think that 'x y' is one variable, and then not only do you get a error on it not being declaan't have a space in a name? Ok then I throw away enter. Next I tell the user the answer to the problem. But I insert the value of x and y being multiplied. That is all you really need to know.
Well that is the end of my Part 1 tutorial. Hopefully this was better than my first tutorial.
Download Dev C++ from here. I suggest the one at the top of the list. http://bloodshed.net/dev/devcpp.html
_________________
| 8D wrote: |
cigs dont make people high, which weed does, which causes them to do bad stuff. like killing |
Last edited by oib111 on Mon Jun 11, 2007 10:10 pm; edited 10 times in total |
|
| Back to top |
|
 |
Ch04s Master Cheater
Reputation: 0
Joined: 28 May 2007 Posts: 406 Location: One never knows.
|
Posted: Fri Jun 08, 2007 4:59 pm Post subject: |
|
|
| Extremly helpful. THank You
|
|
| Back to top |
|
 |
UnLmtD Grandmaster Cheater
Reputation: 0
Joined: 13 Mar 2007 Posts: 894 Location: Canada
|
|
| Back to top |
|
 |
oib111 I post too much
Reputation: 0
Joined: 02 Apr 2007 Posts: 2947 Location: you wanna know why?
|
Posted: Fri Jun 08, 2007 5:40 pm Post subject: |
|
|
I know his is better. His is the ultimate one, I can't top that. Heh, I like your avvy.
_________________
| 8D wrote: |
cigs dont make people high, which weed does, which causes them to do bad stuff. like killing |
|
|
| Back to top |
|
 |
DeltaFlyer Grandmaster Cheater
Reputation: 0
Joined: 22 Jul 2006 Posts: 666
|
Posted: Fri Jun 08, 2007 7:09 pm Post subject: |
|
|
You boast a C tutorial in both your title and your first line. Yet, the first thing you attempted to explain is the import of iostream, which is a standard C++ header. Then you follow to attempt to explain namespace, which is another C++ addition to C.
Basically, your whole tutorial becomes misleading.
Then you attempt to explain variables, but forget semicolons on every single line. The stuff about float and fractions are just wrong.
You spelled "divide" wrong.
"double" is not a command, it's a keyword.
The char type has everything to do with numbers. It stores the ASCII value of the character in its memory.
It's convention that all constants be defined with ALL_CAPTITALS_WITH_UNDERSCORES.
How the hell is the stack like a constant?
A constant declared by const is still a symbolic constant.
An equal sign is needed to initialize the constant declared by "const".
"int kaboom_in_seconds = 5" is not a literal constant, the "5" is.
Looks like you still didn't take my advice and learn to use simple quote tags properly.
Single quotes are used to quote a character. Double quotes for a string of characters.
Having more memory declared than you need in a char array does not give you an error. Having too little will.
I vote "no".
_________________
Wow.... still working at 827... what's INCA thinking?
zomg l33t hax at this place (IE only). Over 150 people have used it, what are YOU waiting for? |
|
| Back to top |
|
 |
oib111 I post too much
Reputation: 0
Joined: 02 Apr 2007 Posts: 2947 Location: you wanna know why?
|
Posted: Fri Jun 08, 2007 7:36 pm Post subject: |
|
|
Wow, sorry I'm am not a complete know it all like you. I am not a super person. I can teach somewhat of C. I do not know all of the concepts completely since the person who taught me didn't teach them very well. And I didn't want to look like an idiot and just copying everything Nigtronix did. And I don't take to hart the stupid ' ' and " ". Plus sorry, after I wrote the tutorial I realized that char did have to do with numbers, but I had to have dinner, and then I went to play catch. Yes I know I spelled divide wrong, it was 1am, whadda yo uexpect from a half asleep zombie person? And it's true if you run that program and put in 1/2 it closes. But if you but 0.5 it stays open. I also learned that an overflow would, so go tell that to the person who taught me. Btw it is like the stack, because when you push and pop something into and from the stack its value doesn't change. With a constant its value doesn't change either. There, I edited the title to C++. I also changed all the C's in my tutorial to C++'s. The #include <iostream> I didn't know, and the using namespace std; was just dumb of me.
_________________
| 8D wrote: |
cigs dont make people high, which weed does, which causes them to do bad stuff. like killing |
Last edited by oib111 on Fri Jun 08, 2007 7:45 pm; edited 3 times in total |
|
| Back to top |
|
 |
Hixk How do I cheat?
Reputation: 1
Joined: 06 Dec 2006 Posts: 1
|
Posted: Fri Jun 08, 2007 7:40 pm Post subject: |
|
|
This failed to help me...
_________________
Someone fix my account. |
|
| Back to top |
|
 |
oib111 I post too much
Reputation: 0
Joined: 02 Apr 2007 Posts: 2947 Location: you wanna know why?
|
Posted: Fri Jun 08, 2007 7:47 pm Post subject: |
|
|
Hixk you is emo. And then go to Nigtronix's tutorial. Much better.
_________________
| 8D wrote: |
cigs dont make people high, which weed does, which causes them to do bad stuff. like killing |
|
|
| Back to top |
|
 |
TheSorc3r3r I post too much
Reputation: 0
Joined: 06 Sep 2006 Posts: 2404
|
Posted: Fri Jun 08, 2007 8:08 pm Post subject: |
|
|
You know, you don't have to write a tutorial.
_________________
Don't laugh, I'm still learning photoshop! |
|
| Back to top |
|
 |
DeltaFlyer Grandmaster Cheater
Reputation: 0
Joined: 22 Jul 2006 Posts: 666
|
Posted: Fri Jun 08, 2007 8:15 pm Post subject: |
|
|
Again, your tutorial is not on C.
If the person didn't teach you very well and you didn't want to look like an idiot, why did you write this?
Single and double quotes are not stupid. They distinguish what kind of data is contained.
One should never publish an unfinished work with known errors, especially for educational purposes.
Ok, the first time you wrote the thing, you were tired. What about the second? The third? When you responded multiple times? When you chose to copy and paste the code? Did you even look over the code?
My references: 12
You were talking from a coding side perspective. And my response was addressed with that assumption. From a coding point of view, 1/2 gives 0, which can be assigned to a float.
Go tell the person that taught you? YOU are responsible for what you put in your work, not some other guy.
Ok, let's see.... stack....
OMG I CHANGED THE STACK!
_________________
Wow.... still working at 827... what's INCA thinking?
zomg l33t hax at this place (IE only). Over 150 people have used it, what are YOU waiting for? |
|
| Back to top |
|
 |
oib111 I post too much
Reputation: 0
Joined: 02 Apr 2007 Posts: 2947 Location: you wanna know why?
|
Posted: Fri Jun 08, 2007 8:24 pm Post subject: |
|
|
T.T Those was when I was super noob and C++. Now I'm just a noobish amatuer person, xP.
_________________
| 8D wrote: |
cigs dont make people high, which weed does, which causes them to do bad stuff. like killing |
|
|
| Back to top |
|
 |
Icos Grandmaster Cheater
Reputation: 0
Joined: 12 May 2007 Posts: 524
|
Posted: Fri Jun 08, 2007 9:27 pm Post subject: |
|
|
| I always think it is better for them to grab an ebook to learn. As undead said, tutorials arent really needed for C++. What they need more is a book that explains the things better.
|
|
| Back to top |
|
 |
sportskid300 Grandmaster Cheater
Reputation: 0
Joined: 22 Jun 2006 Posts: 944 Location: You Wish.
|
Posted: Fri Jun 08, 2007 9:37 pm Post subject: |
|
|
Very nice.
I should get props for the original tut making thing with votes
_________________
|
|
| Back to top |
|
 |
oib111 I post too much
Reputation: 0
Joined: 02 Apr 2007 Posts: 2947 Location: you wanna know why?
|
Posted: Sat Jun 09, 2007 6:53 am Post subject: |
|
|
Heh, yeah. Maybe when I actually get really good at C++ I will make a better tutorial.
_________________
| 8D wrote: |
cigs dont make people high, which weed does, which causes them to do bad stuff. like killing |
|
|
| Back to top |
|
 |
UnLmtD Grandmaster Cheater
Reputation: 0
Joined: 13 Mar 2007 Posts: 894 Location: Canada
|
Posted: Sat Jun 09, 2007 11:29 am Post subject: |
|
|
| oib111 wrote: | | T.T Those was when I was super noob and C++. Now I'm just a noobish amatuer person, xP. |
Then you shouldn't teach.
_________________
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
|
|