Re: [Dev-C++] newbie string parsing question
Open Source C & C++ IDE for Windows
Brought to you by:
claplace
|
From: Scott S. <age...@co...> - 2004-08-18 11:48:07
|
Here are some links: http://www.acm.uiuc.edu/webmonkeys/book/c_guide/ http://www.eskimo.com/~scs/cclass/notes/top.html http://people.cs.uchicago.edu/~iancooke/osstuff/ccc.html w0rldd0m wrote: >This looks like a great solution. ><Humble> >Is there a way translate this into a 'Comp. Sci 1' solution? >I just finished the class and Im not familiar fgets(), sscanf() and >String sanitizing yet, although Im a swashbuckler with making a new string >variables. >My classmates will be impressed when I drop a "buffer overflow attack" >problem on them. ></Humble> > >Thank you in advance for any help you can offer. > > >-----Original Message----- >From: dev...@li... >[mailto:dev...@li...] On Behalf Of Scott >Simontis >Sent: Tuesday, August 17, 2004 5:06 PM >To: Per Westermark >Cc: Matt Valerio; wor...@so...; dev...@li... >Subject: Re: [Dev-C++] newbie string parsing question > >This is probably the smartest solution. I was going to suggest C functions. >Also, you can include <cstdio> instead of stdio.h. That will include all of >the C headers in namespace std. >Per Westermark wrote: > > > >>Note 1: fscanf will not allocate any memory. first_name and last_name >>must already point to large enough memory buffers. >> >>Note 2: that scanf functions are a common road of buffer overflow attacks. >>If one of the names in the string is very long, it will overwrite >>unallocated memory. Whenever strings are loaded, a maximum field width >>should be specified in the formatting string! >> >>One other common method of loading text lines using C, i.e. without use >>of the string data type, is to load each text line with >> fgets(buf,sizeof(buf),file) >>and then use sscanf() on a sanitized string, or use strchr(), strtok() >>or similar to find the separator character(s) between the tokens. >> >>/Per W >> >>On Tue, 17 Aug 2004, Matt Valerio wrote: >> >> >> >> >> >>>Look up the fscanf() function. >>> >>>pseudo-code: >>>#include <stdio.h> >>> >>>char* first_name; >>>char* last_name; >>>int age; >>>FILE* in_file; >>>infile = fopen("data.txt","r"); >>>while ( !eof(infile) ) { >>> fscanf( infile, "%s\t%s\t%d\r", first_name, last_name, &age); >>> // do something with the first_name, last_name, and age variables >>> >>> >here. > > >>>} >>>close(infile); >>> >>> >>>I think that's right -- might want to double check all of the pointers >>>and stuff (the * and & operators). I'm just typing this off the top >>>of my head so double check the syntax. >>> >>>-Matt >>> >>> >>> >>> >>>wor...@so... wrote: >>> >>> >>> >>> >>> >>>>Hi all, >>>> >>>>Thank you in advance for any help that you can offer. >>>> >>>>I have a text file that has records like this: >>>> >>>>Firstname Lastname age //seperated by the \t character. >>>> >>>>I want to run a while loop and parse the record to populate a struct >>>> >>>> >array. > > >>>>I have looked into the getline(string, max, delimiter) function but it >>>> >>>> >needs char[]'s. > > >>>>Since I don't know the length of the string that I need can someone >>>>recommend an existing different class function or something? >>>> >>>>Best regards, >>>> >>>>Dane >>>> >>>> >>>>------------------------------------------------------- >>>>SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank >>>>Media 100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only >>>>$33 Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift. >>>>http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285 >>>>_______________________________________________ >>>>Dev-cpp-users mailing list >>>>Dev...@li... >>>>TO UNSUBSCRIBE: http://www23.brinkster.com/noicys/devcpp/ub.htm >>>>https://lists.sourceforge.net/lists/listinfo/dev-cpp-users >>>> >>>> >>>> >>>> >>>> >>>------------------------------------------------------- >>>SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media >>>100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33 Save >>>50% off Retail on Ink & Toner - Free Shipping and Free Gift. >>>http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285 >>>_______________________________________________ >>>Dev-cpp-users mailing list >>>Dev...@li... >>>TO UNSUBSCRIBE: http://www23.brinkster.com/noicys/devcpp/ub.htm >>>https://lists.sourceforge.net/lists/listinfo/dev-cpp-users >>> >>> >>> >>> >>> >> >>------------------------------------------------------- >>SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media >>100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33 Save >>50% off Retail on Ink & Toner - Free Shipping and Free Gift. >>http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285 >>_______________________________________________ >>Dev-cpp-users mailing list >>Dev...@li... >>TO UNSUBSCRIBE: http://www23.brinkster.com/noicys/devcpp/ub.htm >>https://lists.sourceforge.net/lists/listinfo/dev-cpp-users >> >> >> >> >> > > > >------------------------------------------------------- >SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media 100pk >Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33 Save 50% off >Retail on Ink & Toner - Free Shipping and Free Gift. >http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285 >_______________________________________________ >Dev-cpp-users mailing list >Dev...@li... >TO UNSUBSCRIBE: http://www23.brinkster.com/noicys/devcpp/ub.htm >https://lists.sourceforge.net/lists/listinfo/dev-cpp-users > > > > |