puedes revisar este enlace ahí te explica como se hace una funcion y pasar parametro por valor y referencia.
				
			Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú
int main()
{
   string palabra;
   string almacen[100];
   int i=0;
   char c;
   cout << "Escribe palabra" << endl;
   do
   {
      cin >> palabra;
      i++;
      almacen[i] = palabra;
      cin.ignore(1, '\n');
      cin.get(c);
   } while(c != '\n');//// deseo que finalice cuando se presione la tecla ENTER
#include <stdio.h>
#include <stdlib.h>
FILE *abrir(char *nombre);
int main(void){
    char *c1 = "Este es  un texto de prueba para poder";
    char *c2 = "probar el manejo de entrada y salida de grep";
    char *query = "select * from prueba;";
    FILE *file, *tmpFile;
    
    file = abrir("prueba.txt");
    tmpFile = abrir("tmp.txt");
    
    fprintf(tmpFile, "%s\n", "use test");
    fprintf(tmpFile, "%s", query);
    fclose(file);
    fclose(tmpFile);
    system("mysql < tmp.txt");
    system("rm tmp.txt");
    tmpFile = abrir("tmp.txt");
    file = abrir("prueba.txt");
    
    fprintf(file, "%s\n", c1);
    fprintf(file, "%s", c2);
    
    fclose(file);
    fclose(tmpFile);
    
    system("cat prueba.txt | grep texto >> tmp.txt");
    system("cat tmp.txt");
    
    system("rm tmp.txt");
    getchar();
    
    return EXIT_SUCCESS;
}
FILE *abrir(char *nombre){
    FILE *file;
    if(!(file = fopen(nombre, "wa"))){
        perror("Archivo no creado");
        exit(-1);
    }
struct bits
{
   unsigned int byte:1; //un solo bit asignado
   unsigned int word:1; //un solo bit asignado
};
.
.
HANDLE	hStdoutConsole, hStdinConsole;
	DWORD	written, value = 263977 , read;
	char	message[7] = { 0 }, messageDos[10] = {0};
	AllocConsole();
	hStdoutConsole = GetStdHandle(STD_OUTPUT_HANDLE);
	
	if (hStdoutConsole == INVALID_HANDLE_VALUE) {
		MessageBox(NULL, L"stdout no disponible", L"Error", MB_OK);
		return 1;
	}
	hStdinConsole = GetStdHandle(STD_INPUT_HANDLE);
	if (hStdinConsole == INVALID_HANDLE_VALUE) {
		MessageBox(NULL, L"stdin no disponible", L"Error", MB_OK);
	}
	sprintf_s(message, sizeof(message), "%d", value);
	WriteConsoleA(hStdoutConsole, message, strlen(message), &written, NULL);
	ReadConsoleA(hStdinConsole, messageDos, sizeof(messageDos), &read, NULL);
	return 0;
.