Storing string to a file

Started by
21 comments, last by Craazer 21 years, 4 months ago
How can i store strings to a file? u see if i have: string name="McCall"; and i store it to file using ofstream, its just numbers in the file so obviously its kinda difficult to load from the file. Soo does the string type have any operator perhaps to get chars, not the memory address or what ever it gaved to me?
Advertisement
Include your write/read code. Here that is.



I have spoken.


[edited by - Zorak on December 23, 2002 10:43:15 AM]
Domine non secundum peccata nostra facias nobis
name.c_str() = char version of the string?

.lick
Here is code that shows both how to read and write strings to a file:
#include <stdio.h>int main(){    FILE* fptr;    char mystr[] = "Hello World";    char anotherstr[101];    /* Write "Hello World" to file "hi.txt" */    fptr = fopen("hi.txt", "wt"); /* w means write, t means text file */    fprintf(fptr, "%s", mystr); /* Write string mystr */    fclose(fptr);    /* Now read that string back in */    fptr = fopen("hi.txt", "rt"); /* r means read */    fscanf(fptr, "%100s", anotherstr); /* Read string in */    fclose(fptr);    /* To prove this worked, we''ll print anotherstr to the screen */    printf("The string is: %s\n", anotherstr);    return 0;} 

- Andy Oxfeld
Unfortunately that uses C style strings, and the OP was using std::string (well ''string'', which is a class anyway)

Member of the Unban Mindwipe Society (UMWS)
quote:Original post by Evil Bill
Unfortunately that uses C style strings, and the OP was using std::string (well ''string'', which is a class anyway)

Then it''s about time for the OP to learn to use C style strings

- Andy Oxfeld

True, but still, i thought there was a way to read & write std::strings to a file.

I dunno, i don''t tend to use the STL much.

Member of the Unban Mindwipe Society (UMWS)
You could write a string similarly to my example above but using stringvariablename.c_str() where I used mystr, like this:
fprintf(fptr, "%s", stringvariablename.c_str()); 

To read in a string, you could read it into a character array like I did, and then do:
stringvariablename = anotherstr; 

- Andy Oxfeld
Uh, what''s wrong with ofstream/ifstream?

This should work (not tested)

  #include <fstream>#include <iostream>#include <string>int main() {  std::string st = "boo";  {    std::ofstream out("test.txt");    out << st;  }  std::string st2;  {    std::ifstream in("test.txt");    in >> st2;  }  std::cout << st2 << std::endl;}  
this post was an evil twin of the one above

[edited by - civguy on December 23, 2002 12:31:20 PM]

This topic is closed to new replies.

Advertisement