Hi, I’m new to c++ and am looking for some help. I’ve searched through most of the site but cant find exactly what I need, so thought I’d ask.
I need to read in strings (arrays of char) from a text file in a function then pass them back to the main. The code below does this but only for 2 strings. How do I go about changing the function to take arrays of strings, in other words 2d arrays of chars?


#include <fstream>
#include <iostream>
using namespace std;
char get(char [], char[]);
int main()
char string1[6];
char string2[6];
//print out 1st string
for(int w =0;w<6;w++)  
//print out 2nd string
for(int e = 0; e<10;e++)
int q;
return 0;
char get(char string1[6], char string2[6])
ifstream fin("input.txt");
fin >> string1;
fin >> string2;
return 0;

you declare a 2d array of strings like this

const int ROWS = 255;
const int CHARS_PER_ROW  20

char array[ROWS][CHARS_PER_ROW];

then it looks like this

char get(char array[ROWS][CHARS_PER_ROW])
    ifstream fin("input.txt");
    if( fin.is_open())
         int row = 0;
         while( row < ROWS && fin >> array[row++] )
    return 0;


Another quick question if you don’t mind?

The txt file that I’m reading from has a list of names in it. When I print these from the array back in main I get a lot of nonsense after where the white space should have stopped the reading from the file.
After reading in the names dave and john I get this:

dave ,∞# á►$ john δ# ╔Uæ|(∩#

Any idea how I just get the names?

I’ve worked it out now so don’t worry about it!


Yea I know all about that type of problem, I just spent three days trying to find one like that in my own program.

This article has been dead for over six months. Start a new discussion instead.