Guardando datos en un archivo de texto en C++

Una de las dinámicas más divertidas en la programación básica es el crear archivos de texto para guardar en ellos datos y modificarlos también, aunque para nosotros el guardar datos o modificar el texto ya existente en un archivo puede ser lo mismo en verdad son dos dinámicas distintas en programación.
La mayoría de programas que se crean tienen como fin guardar datos en archivos tras manipularlos, en el siguiente ejemplo podrá ver como empezamos abriendo el archivo y podríamos decir que se instancia en una variable que llamaremos "archivo", cuando digo instanciar me refiero a que en archivo no se guardara su contenido todavía, en artículos anteriores expliqué que para leerlo se utilizan otras funciones pero lo que queremos hacer aquí es guardar contenido en el por lo tanto usaremos la función fprintf() pasemos al ejemplo y luego explico mas.
#include <cstdlib>
#include <cstdio>
using namespace std;
int main()
{
FILE *archivo; // FILE se escribe en mayuscula
char texto[]="Aqui tengo un poco de texto que debemos de guardar";
archivo = fopen( "documento.txt", "w"); // En el segundo parametro se escribe la forma en que sera abierto "w"
fprintf(archivo,texto);
system("pause");
return 0;
}

En el artículo donde se habló como abrir un archivo se explicó los modos de apertura de archivos por ejemplo "w", el archivo puede ser abierto para solo lectura, lectura y escritura, o incluso para forzar su creación en caso que no exista, al usar "w", si no existe el archivo entonces se creara, tenga cuidado con los modos de apertura.
Permitir que el usuario escoja el nombre del archivo y escriba el texto
Pensé en extender la dinámica básica, la mejor forma es permitir que el usuario ingrese el nombre del archivo que quiere editar, en el siguiente ejemplo esto lo hacemos con ayuda de la función cin, almacenando el texto en una variable de tipo char para luego utilizarla en el fopen, así mismo permitimos que ingrese el texto que quiere guardar almacenándolo en otra variable.
#include <iostream>
#include <cstdlib>
#include <cstdio>
using namespace std;
int main()
{
FILE *archivo;
char texto[10000];
char nombre[100];
cout << "Nombre del archivo a editar: ";
cin.getline(nombre, sizeof(nombre)); // Se utiliza la propiedad getline de cin, porque "cin << variable;" solo captura la primer palabra.
cout << "Escriba su texto: ";
cin.getline(texto, sizeof(texto));
archivo = fopen(nombre,"w");
fprintf(archivo,texto);
system("pause");
return 0;
}
Nota: al indicar el nombre del archivo se tiene que indicar la extensión, porque en verdad estas funciones permiten editar y guardar texto en cualquier tipo de archivo no solo en los .txt.
por ejemplo: si mi if es
quiero que lo que salga de ahi se pueda guardar en un txt