Hi mY files paths are defined as : Code: //sbase = 'D:\data\[B]sample_AMC[/B]\fasta_files\'; sbase2 = 'D:\data\[B]sample_AMC[/B]\fasta_files\results\'; snameprefix = 'orig_ind'; snameprefix3 = 'results_ind'; ... const string filname = sbase + snameprefix + snamesuffix; const string resultsname_ = sbase2 + snameprefix3 + snamesuffix; This concatenation works perfectly fine when i have to manually defines the samplesnames However now I have 98 such samples names to work with.This implies I have to keep updating my sbase and sbase2 98 times. If my sample name changes from sample_AMC to sampleABC_123 then I have to update the path manuallyto Code: sbase = 'D:\data\sampleABC_123\fasta_files\'; sbase2 = 'D:\data\sampleABC_123\fasta_files\results\'; In order to make it easier,I saved all my 98 samplename entries in a text file. Is there a way I could read string entries line by line from a text file using c++ and concatenate it to sbase and sbase2? Text file looks like this sample_AMC sampleABC_123 ..
is something like below what you're after? Code: #include <iostream> #include <fstream> #include <string> int main() { std::string sbase1, sbase2, fbuf; std::ifstream infile("input.txt"); if(infile.is_open()) { while(std::getline(infile, fbuf)) { sbase1.clear(); sbase2.clear(); sbase1 = "d:\\data\\" + fbuf + "\\fasta_files\\"; sbase2 = "d:\\data\\" + fbuf + "\\fasta_files\\results\\"; std::cout << sbase1 << std::endl << sbase2 << std::endl << "\n"; } infile.close(); } }