Q:

getline no me deja ingresar texto

estoy utilizando el siguiente trozo de código en el cual introduzco una cadena y se guarda en el archivo pero no deja guardar ningún carácter en la cadena por que no pausa, se ejecuta las instrucciones que van después
 const size_t longitud = 100;
 char nota[longitud];
 fstream archivo(NOMBRE_ARCHIVO.c_str());
 if(archivo.good()) {
   archivo.open(NOMBRE_ARCHIVO.c_str(), fstream::in | fstream::out | fstream::app);
 } else {
   archivo.open(NOMBRE_ARCHIVO.c_str(), fstream::in | fstream::out | fstream::trunc);
 }

 cout << "\n\t  Ingrese la nota porfavor" << " ." << endl;
 cin.getline(nota, longitud);
 archivo << nota << endl;
 archivo.close();
 break;

A:

Creo que su error esta por aqui:
fstream archivo(NOMBRE_ARCHIVO.c_str());

cambiarlo por ejemplo por fstream archivo;.
http://www.cplusplus.com/reference/fstream/fstream/fstream/
Esto es para que haga una comprovacion es un simple test basado en su codigo, si este le funciona quizas el error esta en otra parte de su codigo.
#include <fstream>
#include <iostream>

using namespace std;

int main(int argc, char** argv) {

    const size_t longitud = 100;
    char nota[longitud];

    fstream archivo; //<- Cambiar

    if(archivo.good()) {
       archivo.open("/home/SuHome/t.txt", fstream::in | fstream::out | fstream::app); //Ponga la ruta de su home para test

     } else {

       archivo.open("/home/SuHome/t.txt", fstream::in | fstream::out | fstream::trunc); //Ponga la ruta de su home para test
     }

     cout << "\n\t  Ingrese la nota porfavor" << " ." << endl;

     cin.ignore();// A mi que me funciono sin esto.

     cin.getline(nota, longitud);
     archivo << nota << endl;
     archivo.close();

return 0;
}

Esto deberia de crear un fichero sin problemas.
P.D: Compruebe que ajusta esta parte para su SO -> archivo.open("/home/SuHome/t.txt".... usando su directorio de usuario.

