/ / Come leggere le stringhe per riga in C ++ da .txt file - c ++

Come leggere le stringhe per riga in C ++ dal file .txt - c ++

Al momento ho due file .txt, un file che contiene caratteri, vorrei creare un flusso di file e prendere i caratteri da quel file e metterli in una serie di caratteri.

Poi ho anche un file di testo con 6 stringhe su alinea diversa, ho bisogno di aggiungere questi in una serie di stringhe, ecco il mio codice finora, sto avendo un piccolo errore quando sto cercando di mettere il valore di "parole" il mio file di stringa per l'array di stringhe in ogni posizione in un array.

    //Gets the characters from the textfile and creates an array of characters.

char ch;
fstream fin("text1.txt", fstream::in);

while (fin >> noskipws >> ch) {
char letters[5];
cout << ch;


for (int i = 0; i < 14; ++i)
{
ch >> letters[i];
}


}
fin.close();


//Get the words from the file and add into an array of strings

string words;
fstream fin2("search1.txt", fstream::in);

while (getline(fin2, words)) {
string wordsArray[6];
cout << words;

for (int i = 0; i < 6; ++i)
{
words >> wordsArray[i];
}
}
fin2.close();

risposte:

4 per risposta № 1

In base al tuo titolo, puoi leggere il testo riga per riga usando:

std::string text_line;
while (std::getline(input_stream, text_line))
{
// ...
}

Leggere parole da una stringa, è possibile utilizzare std::istringstream:

std::string word;
std::istringstream text_stream(text_line);
while (text_stream >> word)
{
// Process the word
}

0 per risposta № 2

Va bene, quindi ho il codice, prendendo una riga di caratteri da un file di testo e inserendoli in una serie di caratteri []

    char ch;
char chArray[14];
fstream fin1("text1.txt", fstream::in);
if (fin1.is_open())
{
cout << "File of characters Opened successfully!!!. Reading data from file into array" << endl;
while (!fin1.eof()) {
for (int i = 0; i < 14; ++i) {
fin1.get(ch);
chArray[i] = ch;
cout << chArray[i] << endl;
}
}
}

Ora quello che devo fare è in qualche modo, convertire la matrice di caratteri in stringhe di carattere singolo, in modo che io possa confrontarli con una serie di stringhe incluse le parole.

C'è un modo per convertire semplicemente quella matrice in un array di stringhe?