tags:

views:

287

answers:

3

Dear all,
In order to creation a formatted file, I want to utilize fprintf. it must get char* but I have several string variables. Can anyone help me, please?
Thanks

+6  A: 

The basic usage of fprintf with strings looks like this:

char *str1, *str2, *str3;
FILE *f;
// ...

f = fopen("abc.txt", "w");
fprintf(f, "%s, %s\n", str1, str2);
fprintf(f, "more: %s\n", str3);
fclose(f);

You can add several strings by using several %s format specifiers and you can use repeated calls to fprintf to write the file incrementally.

If you have C++ std::string objects you can use their c_str() method to get a const char* suitable to use with fprintf:

std::string str("abc");
fprintf(f, "%s\n", str.c_str());
sth
Thank you very much. It works.
aryan
+1  A: 

fprintf with multiple strings is pretty simple, if that is what you are after, e.g.

const char* charString1 = "This";
const char* charString2 = "is a";
const char* charString3 = "test";

fprintf(fileHandle, "%s, %s, %s", charString1, charString2, charString3);
Chaos
I have something like this:...string St1, St2;...ifstream In("Text.txt");In >> St1 >> St2;...that St1 and St2 are initialized by reading from a file by ifstream() function. Now I want to write them in another file by fprintf() function.fprintf("%s %s", St1, St2);But I think fprint get char* not string.
aryan
A: 

fprintf works analogous to printf, in the format specifier, you can mention as many %s as you want and give the corresponding number of string arguments. If you want a more detailed answer, please post your code.

Jay