|
The easy solution is to override the read and write methods in your own stream extension.
It is the "standard", "usual" and "prefered" way to fix behaviour of classes or objects with methods and functions that aren't exactly as you desire.
Can I go so far as to suggest MovieNameStream as a possible title for the extension.
In vino veritas
|
|
|
|
|
Farhan_Karim wrote: works if...all the strings...seperated by special characters. Is that not a possibility?
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"You can easily judge the character of a man by how he treats those who can do nothing for him." - James D. Miles
|
|
|
|
|
I have Dev C++ on my system to practice writing C++ code from my C++ Programming for the Absolute Beginner book. So far, the constant repetition and copying have improved my muscle memory. Then, recently, I just noticed that this application could autocomplete my line.
My biggest worry is that this autocomplete thing would make me fail the Computer Science placement exam. I really want to take the placement exam, so then I can get tested into the software development class and skip the introductory CS classes. On the school's website, it says that the placement exam takes place on paper and pencil, so that implies I should know how to write everything down to smallest detail and get it accurate enough so the algorithms would run correctly.
Should beginners use Autocomplete? Maybe it's good practice for a beginner to write code on paper and then transfer the code onto the computer?
|
|
|
|
|
Member KL wrote: Maybe it's good practice for a beginner to write code on paper and then transfer the code onto the computer? That's a good idea for anyone, not just beginners.
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"You can easily judge the character of a man by how he treats those who can do nothing for him." - James D. Miles
|
|
|
|
|
That sounds completely impractical... perhaps good for a learner but you'd never get anything done if you were writing things on paper first before transposing the same exact thing onto real code.
|
|
|
|
|
I guess you never had the joy of writing your code in pencil, on fixed width coding sheets. These were then sent to the data prep department to be punched onto Hollerith (80 column) cards, before being submitted to the computer room for compilation. And then you had to wait a couple of hours for the results which showed you had missed a comma on the second line.
|
|
|
|
|
Luckily, no... that would be painful!
I have however worked on FPGAs, that's a similarly slow process of building/routing. You're not writing things on paper but you're definitely waiting for a really long time for synthesis and routing. I was working on these guys a few years ago now but our builds would take about a couple of hours too. You'd be really disappointed when things didn't quite work or you forgot some debug traces.
|
|
|
|
|
It depends how much work your auto-complete does for you. As a learner, you should avoid auto-complete that makes classes and sets of methods for you. If however, all it's doing is completing a word, well... you're learning to program, not to spell... so that little bit of help won't undo what you're learning.
At the end of the day what will make you a better programmer will ultimately be how many hours you spend programming. Practice, practice, practice....
Good luck!
|
|
|
|
|
|
Definitely use a whiteboard or paper for architecting a complicated system (or a software tool like Visio). Last thing you want to do is spend a bunch of time writing software that doesn't really make sense in the grand scale of things (architecture-wise).
|
|
|
|
|
Albert Holguin wrote: Definitely use a whiteboard or paper for architecting a complicated system (or a software tool like Visio).
That is what I do when I say
PPolymorphe Wrote: I only resort to paper to draw diagrams when the current problem is complicated.
Albert Holguin wrote: Last thing you want to do is spend a bunch of time writing software that doesn't really make sense in the grand scale of things (architecture-wise). Can only agree.
Patrice
“Everything should be made as simple as possible, but no simpler.” Albert Einstein
|
|
|
|
|
ppolymorphe wrote: That is what I do when I say
PPolymorphe Wrote: I only resort to paper to draw diagrams when the current problem is complicated.
I was only agreeing/elaborating...
|
|
|
|
|
Ok then. English is not my primary language and sometimes, I miss things
Patrice
“Everything should be made as simple as possible, but no simpler.” Albert Einstein
|
|
|
|
|
Academic point of view:
You should avoid using autocomplete or similar helpers so that you can have better hands-on.
Professional point of view:
You should not miss any helpers (autocomplete, automation etc.) so that you become more productive.
Best wishes
|
|
|
|
|
#include<stdlib.h>
#include<stdio.h>
struct tree
{
char info;
struct tree *left;
struct tree *right;
};
struct tree *root;
struct tree *stree(struct tree *root,struct tree *r,char info);
void print_tree(struct tree *root,int l);
int main(void)
{
char s[80];
int l=3;
root=NULL;
do
{
printf("enter a letter:");
gets(s);
root=stree(root,root, *s);
}
while(*s);
print_tree(root,0);
return 0;
}
struct tree *stree(struct tree *root,struct tree *r,char info)
{
if(!r)
{
r=(struct tree *) malloc(sizeof(struct tree));
if(!r)
{
printf("out of memory \n");
exit(0);
}
r->left=NULL;
r->right=NULL;
r->info=info;
if(!root)
return r;
if(info<root->info)
root->left=r;
else
root->right=r;
return r;
}
if(info<r->info)
stree(r,r->left,info);
else
stree(r,r->right,info);
return root;
}
void print_tree(struct tree *r,int l)
{
int i;
if(!r) return ;
print_tree(r->right,l+1);
for(i=0;i<l;++i)
printf(" ");
printf("%c \n",r->info);
print_tree(r->left,l+1);
}
|
|
|
|
|
You need to use your debugger to gather more information about what happens when you run the code.
|
|
|
|
|
Ditto what Richard suggested.
Printing aside, you need to first verify that the tree is being built correctly. The only way to do that is to single step through each line of code (the stree() function) using the debugger. Note the values of info , left , and right along the way. As you build the tree on paper, what you see in the debugger should match.
Are you trying to print the tree contents pre-order, in-order, or post-order?
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"You can easily judge the character of a man by how he treats those who can do nothing for him." - James D. Miles
modified 20-May-16 16:09pm.
|
|
|
|
|
You should learn to use the debugger as soon as possible. Rather than guessing what your code is doing, It is time to see your code executing and ensuring that it does what you expect.
The debugger allow you to follow the execution line by line, inspect variables and you will see that there is a point where it stop doing what you expect.
Debugger - Wikipedia, the free encyclopedia[^]
Mastering Debugging in Visual Studio 2010 - A Beginner's Guide[^]
Patrice
“Everything should be made as simple as possible, but no simpler.” Albert Einstein
|
|
|
|
|
Hi; i m just confused about defaulting arguments.can someone simply explain defaulting arguments
|
|
|
|
|
See here.
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"You can easily judge the character of a man by how he treats those who can do nothing for him." - James D. Miles
|
|
|
|
|
It's simply a means to provide values for the arguments that will be a good default (or starting point).
For example, if let's say... you're opening a socket to provide some service. By default, most libraries will bind to any (or every) Ethernet address available on a system. Reason you'd want to do this is because you don't necessarily want to only provide the service on one Ethernet device but not the other (for example, servers have multiple Eth devices for load balancing). If however, you do only want the service to be provided on one device, then you can choose to bind to the specific Eth address of interest.
|
|
|
|
|
Does wp_cache still load Wordpress and use MySQL?
|
|
|
|
|
See here.
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"You can easily judge the character of a man by how he treats those who can do nothing for him." - James D. Miles
|
|
|
|
|
How to pass Array[Seq[String]] to apache spark udf? (Error: Not Applicable)
|
|
|
|
|
Is this a C / C++ / MFC question?
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"You can easily judge the character of a man by how he treats those who can do nothing for him." - James D. Miles
|
|
|
|