Friday 29 December 2017

c++ - How to read line by line or a whole text file at once?

itemprop="text">


I'm in a tutorial which
introduces files (how to read and write from\to
file)



First of all, this is not a homework, this
is just general help I'm seeking.



I know how to
read one word at a time, but I don't know how to read one line at a time or how to read
the whole text file.



What if my file contains
1000 words? It is not practical to read each
word.



My text file named (Read) contains the
following:




I love to play
games
I love reading
I have 2
books



This is what I have accomplished so
far:



#include

#include

using namespace
std;

int main (){

ifstream inFile;

inFile.open("Read.txt");

inFile
>>


Is there any
possible way to read the whole file at once, instead of reading each line or each word
separate?



Answer





You can use
std::getline
:



#include

#include

int main()

{
std::ifstream file("Read.txt");
std::string str;

while (std::getline(file, str))

{
//
Process str

}
}


Also
note that it's better you just construct the file stream with the file names in it's
constructor rather than explicitly opening (same goes for closing, just let the
destructor do the work).



Further documentation
about std::string::getline() can be read at href="http://en.cppreference.com/w/cpp/string/basic_string/getline">CPP
Reference.




Probably the
easiest way to read a whole text file is just to concatenate those retrieved
lines.



std::ifstream
file("Read.txt");
std::string str;
std::string
file_contents;
while (std::getline(file, str))
{

file_contents += str;
file_contents.push_back('\n');
}



No comments:

Post a Comment

php - file_get_contents shows unexpected output while reading a file

I want to output an inline jpg image as a base64 encoded string, however when I do this : $contents = file_get_contents($filename); print &q...