Добавление нескольких строк в вывод текстового файла?

Я использую базовый код C для печати в текстовый файл:

FILE *file; file = fopen("zach.txt", "a+"); //add text to file if exists, create file if file does not exist fprintf(file, "%s", "This is just an example :)\n"); //writes to file fclose(file); //close file after writing printf("File has been written. Please review. \n"); 

Мой вопрос касается вышеуказанного кода: у меня есть несколько строк, которые я напечатал, которые я хотел бы сохранить в текстовом документе. Как я могу легко включить несколько строк кода для печати в моем файле, используя вышеуказанный код?

Перемещение записи файла в процедуру:

 void write_lines (FILE *fp) { fprintf (file, "%s\n", "Line 1"); fprintf (file, "%s %d\n", "Line", 2); fprintf (file, "Multiple\nlines\n%s", "in one call\n"); } int main () { FILE *file = fopen ("zach.txt", "a+"); assert (file != NULL); // Basic error checking write_lines (file); fclose (file); printf ("File has been written. Please review. \n"); return 0; } 

Есть много способов сделать это, вот один из них:

 #include #include int appendToFile(char *text, char *fileName) { FILE *file; //no need to continue if the file can't be opened. if( ! (file = fopen(fileName, "a+"))) return 0; fprintf(file, "%s", text); fclose(file); //returning 1 rather than 0 makes the if statement in //main make more sense. return 1; } int main() { char someText[256]; //could use snprintf for formatted output, but we don't //really need that here. Note that strncpy is used first //and strncat used for the rest of the lines. This part //could just be one big string constant or it could be //abstracted to yet another function if you wanted. strncpy(someText, "Here is some text!\n", 256); strncat(someText, "It is on multiple lines.\n", 256); strncat(someText, "Hooray!\n", 256); if(appendToFile(someText, "zach.txt")) { printf("Text file ./zach.txt has been written to."); } else { printf("Could not write to ./zach.txt."); } return 0; } 

обратите внимание на функции strncpy и strncat поскольку на самом деле вы не используете форматированный вход, который поставляется с функциями xprintf .