|
unfortunately, not only them...
|
|
|
|
|
How to read from a string
char str[] = "field1 field2 field3 ..."
only one field3 string using sscanf() and one buffer for it - tmp.
sscanf(str,"%s %s %s",0,0,tmp);
it produces exception in this case
9ine
|
|
|
|
|
9ine wrote: sscanf(str,"%s %s %s",0,0,tmp);
Replace zeroes by address of variables because sscanf expects some address to be passed in. You are passing in NULL hence the exception I guess.
char str[] = "15 12 14";
int num1,num2,num3;
num1=num2=num3=0;
sscanf(str, "%d %d %d", &num1, &num2, &num3 );
printf( "Num1: %d, num2: %d, num3: %d", num1, num2, num3 );
|
|
|
|
|
I want to use just one variable to its arguments list.
Consider if I need to read 20th field from a string I dont want to declare
int num1,num2,num3,num4, ........... num20
to read last field
9ine
|
|
|
|
|
9ine wrote: Consider if I need to read 20th field from a string I dont want to declare
int num1,num2,num3,num4, ........... num20
to read last field
sscanf isn't the right function for doing this. And using the %s option for sscanf isn't advised since it will almost never do what you hope it will. In fact, only your first %s will be read in and you will corrupt memory with the other 2 (even after fixing your references to the variables).
If you are looking to access a single (or even a few) elements in a delimited string, write a split method, or use strtok to march through the array to the elements you want to access.
If you decide to become a software engineer, you are signing up to have a 1/2" piece of silicon tell you exactly how stupid you really are for 8 hours a day, 5 days a week
Zac
|
|
|
|
|
9ine wrote: sscanf(str,"%s %s %s",0,0,tmp);
Use:
sscanf(str, "%*s %*s %s", tmp); 9ine wrote: it produces exception in this case
As it should since you are trying to write to address 0.
"Money talks. When my money starts to talk, I get a bill to shut it up." - Frank
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
that is the nice one. I have not seen it in sscanf documentation
9ine
|
|
|
|
|
I did not know sscanf could do that.
Wow. I am gonna remove all stringstreams from my code, right now
Cheers,
Sebastian
--
Contra vim mortem non est medicamen in hortem.
|
|
|
|
|
Sebastian Schneider wrote: I am gonna remove all stringstreams from my code, right now
are you serious
C++ classes are much prefered than C functions dude!
|
|
|
|
|
toxcct wrote: are you serious
Hrhr.
Cheers,
Sebastian
--
Contra vim mortem non est medicamen in hortem.
|
|
|
|
|
Sebastian Schneider wrote: Wow. I am gonna remove all stringstreams from my code, right now
I do hope you were being sarcastic :-P
sscanf is great when parsing typed information ... it is not very useful for trying to extract substrings.
If you decide to become a software engineer, you are signing up to have a 1/2" piece of silicon tell you exactly how stupid you really are for 8 hours a day, 5 days a week
Zac
|
|
|
|
|
I was.
Oh, and I noticed 2 typos in your Signature:
Zac Howland wrote: ...for 8 hours a day, 5 days a week
should be
experience tells us: ...for 11 hours a day, 6 days a week
Cheers,
Sebastian
--
Contra vim mortem non est medicamen in hortem.
|
|
|
|
|
Just checking ...
And I've thought about changing it to say "at least 8 hours ... 5 days" since my old job fit the 20 hour/7 day mold.
If you decide to become a software engineer, you are signing up to have a 1/2" piece of silicon tell you exactly how stupid you really are for 8 hours a day, 5 days a week
Zac
|
|
|
|
|
Gotta loooooove crunch-time...
Cheers,
Sebastian
--
Contra vim mortem non est medicamen in hortem.
|
|
|
|
|
Oh no. That was normal operating procedure ... When crunch time came around, the managers would pressure us to spend the night in the office ... even over weekends!
If you decide to become a software engineer, you are signing up to have a 1/2" piece of silicon tell you exactly how stupid you really are for 8 hours a day, 5 days a week
Zac
|
|
|
|
|
yeah. david crow rulez
9ine
|
|
|
|
|
Nice. I didn't know that either.
Alcohol. The cause of, and the solution to, all of life's problems - Homer Simpson
|
|
|
|
|
Or like this.
N.B. Add error handling as required!
<br />
char str[] = "field1 field2 field3 ..."<br />
<br />
char * cpLastSpace = strrchr(str, (int) ' ');
if(NULL != cpLastSpace) {<br />
sscanf(cpLastSpace+1,"%s",tmp);<br />
}<br />
Alcohol. The cause of, and the solution to, all of life's problems - Homer Simpson
|
|
|
|
|
How To Convert Imnage To Binary And Save To Addres Segment
for Example SAve to : 00000 : 3FFFFF
|
|
|
|
|
javad_2005 wrote: How To Convert Imnage To Binary
Well first you would have to convert it to Text so you could convert it back to Binary. Is that what you mean?
led mike
|
|
|
|
|
How Binary To Save Addres Segment
|
|
|
|
|
To get a useful answer, give us a useful question.
What format is the image in originally? (for example, it is a DIB or it is a JPG file, or . . .)
What do you mean "Convert to binary"? (for example, you want to access the pixel data or you want to convert to monochrome black / white or . . .)
Why do you want it at a particular segment?
|
|
|
|
|
it doesnt any different at segmnet
never mind any adress segment
For Example:
I Write Image To Bios Address Segmnet
or Write To Address Vga
Or Give Pixel In Vga Address Segment And Write Vga Addres Segment
|
|
|
|
|
OK. That's one answer.
But I still don't think you have explained what you are trying to do in a way that other CodeProject users can understand. That's why you aren't getting answers.
I repeat what I said previously - if you want help, state your question clearly. Since your profile says you're in the USA, I suggest that once you've re-written your question, you get someone whose home-language is English (or American-English) to check that it is clear and understandable.
|
|
|
|
|
thank you for you'r reply
I Want To Get Pixel Directly From Vga Memory
And Then Modify Them and write Them Directly In To Vga Memory Again.
|
|
|
|