Search Results

Search found 230 results on 10 pages for 'ifstream'.

Page 5/10 | < Previous Page | 1 2 3 4 5 6 7 8 9 10  | Next Page >

  • mmap() for large file I/O?

    - by Boatzart
    I'm creating a utility in C++ to be run on Linux which can convert videos to a proprietary format. The video frames are very large (up to 16 megapixels), and we need to be able to seek directly to exact frame numbers, so our file format uses libz to compress each frame individually, and append the compressed data onto a file. Once all frames are finished being written, a journal which includes meta data for each frame (including their file offsets and sizes) is written to the end of the file. I'm currently using ifstream and ofstream to do the file i/o, but I am looking to optimize as much as possible. I've heard that mmap() can increase performance in a lot of cases, and I'm wondering if mine is one of them. Our files will be in the tens to hundreds of gigabytes, and although writing will always be done sequentially, random access reads should be done in constant time. Any thoughts as to whether I should investigate this further, and if so does anyone have any tips for things to look out for? Thanks!

    Read the article

  • getline() returns empty line in Eclipse but working properly in Dev C++

    - by pocoa
    Here is my code: #include <iostream> #include <stdlib.h> #include <fstream> using namespace std; int main() { string line; ifstream inputFile; inputFile.open("input.txt"); do { getline(inputFile, line); cout << line << endl; } while (line != "0"); return 0; } input.txt content: 5 9 2 9 3 8 2 8 2 1 0 In Enclipse, it goes to infinite-loop. I'm using MinGW 5.1.6 + Eclipse CDT. I tried many things but I couldn't find the problem.

    Read the article

  • Reading a text file in c++

    - by Yavuz Karacabey
    string numbers; string fileName = "text.txt"; ifstream inputFile; inputFile.open(fileName.c_str(),ios_base::in); inputFile >> numbers; inputFile.close(); cout << numbers; And my text.txt file is: 1 2 3 4 5 basically a set of integers separated by tabs. The problem is the program only reads the first integer in the text.txt file and ignores the rest for some reason. If I remove the tabs between the integers it works fine, but with tabs between them, it won't work. What causes this? As far as I know it should ignore any white space characters or am I mistaken? If so is there a better way to get each of these numbers from the text file?

    Read the article

  • Reading in 4 bytes at a time

    - by alphomega
    I have a big file full of integers that I'm loading in. I've just started using C++, and I'm trying out the filestream stuff. From everything I've read, it appears I can only read in bytes, So I've had to set up a char array, and then cast it as a int pointer. Is there a way I can read in 4 bytes at a time, and eliminate the need for the char array? const int HRSIZE = 129951336; //The size of the table char bhr[HRSIZE]; //The table int *dwhr; int main() { ifstream fstr; /* load the handranks.dat file */ std::cout << "Loading table.dat...\n"; fstr.open("table.dat"); fstr.read(bhr, HRSIZE); fstr.close(); dwhr = (int *) bhr; }

    Read the article

  • Boost::Archive causing weird linker error.

    - by Dallin Wellington
    Does anyone have a clue why those two lines would cause that linker error? std::ifstream ifs("filename.file"); boost::archive::binary_iarchive iarchv( ifs ); Error 8 fatal error LNK1104: cannot open file 'F:\dev\project\build\win32-unit\tests\Debug\framework_core_tests.lib' ramework_core_tests framework_core_tests The same happens with any Boost::Archive type. Its trying to link against a library of the same name as my executable for some reason when that project doesn't nor never existed and is not defined as a library to link against in my project files.

    Read the article

  • Connecting std::basic_ofstream<unsigned char> to a FIFO. bad_cast exceptions

    - by Mike B
    Using gcc 4.4.3 on Linux 2.6.32, I get bad_cast exceptions when connecting std::basic_ofstream to a FIFO. Stepping though the debugger, I can see that the error is generated at various places in the standard library because the _M_codecvt member of the stream or filebuf object is NULL. Exactly where it happens depends on the order of operations, but it appears to be the same cause in each. So am I doing something fundamentally stupid here? ofstream and ifstream work fine. Is there some reason that you shouldn't attach a stream of anything besides char to a FIFO? Thanks in advance.

    Read the article

  • How to skip integers in C++ taken from a fstream txt file?

    - by Elaina
    I need to create a function that uses a loop. This function will open a text file and then must be able to skip a variable number of leading random integers. The program must be able to handle any number of leading random integers. Example if the opened file reads this on its first line: 100 120 92 82 38 49 102 and the SKIP_NUMBER variable is assigned 3 the number the function would grab is 82. The function must continue to grab the integers every SKIP_NUMBER until it reaches the end of the file. These integers taken from the txt file are then placed into another text file. Please help I'm really lost on how to create this loop! :D Here is my function so far... //Function skips variables and returns needed integer int skipVariable (int SKIP_NUMBER) { return 0; //temporary return } These are my program variables: // initialize function/variables ifstream fin; string IN_FILE_NAME, OUT_FILE_NAME; int SKIP_NUMBER;

    Read the article

  • converting string to int in C++

    - by xbonez
    I am trying to convert a string I read in from a file to an int value so I can store it in an integer variable. This is what my code looks like: ifstream sin; sin.open("movie_output.txt"); string line; getline(sin,line); myMovie.setYear(atoi(line)); Over here, setYear is a mutator in the Movie class (myMovie is an object of Movie class) that looks like this: void Movie::setYear(unsigned int year) { year_ = year; } When I run the code, I get the following error: error C2664: 'atoi' : cannot convert parameter 1 from 'std::string' to 'const char *' 1> No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called

    Read the article

  • C++ run error: pointer being freed was not allocated

    - by Dale Reves
    I'm learning c++ and am working on a program that keeps giving me a 'pointer being freed was not allocated' error. It's a grocery store program that inputs data from a txt file, then user can enter item# & qty. I've read through similar questions but what's throwing me off is the 'pointer' issue. I would appreciate if someone could take a look and help me out. I'm using Netbeans IDE 7.2 on a Mac. I'll just post the whole piece I have so far. Thx. #include <iostream> #include <fstream> #include <string> #include <vector> using namespace std; class Product { public: // PLU Code int getiPluCode() { return iPluCode; } void setiPluCode( int iTempPluCode) { iPluCode = iTempPluCode; } // Description string getsDescription() { return sDescription; } void setsDescription( string sTempDescription) { sDescription = sTempDescription; } // Price double getdPrice() { return dPrice; } void setdPrice( double dTempPrice) { dPrice = dTempPrice; } // Type..weight or unit int getiType() { return iType; } void setiType( int iTempType) { iType = iTempType; } // Inventory quantity double getdInventory() { return dInventory; } void setdInventory( double dTempInventory) { dInventory = dTempInventory; } private: int iPluCode; string sDescription; double dPrice; int iType; double dInventory; }; int main () { Product paInventory[21]; // Create inventory array Product paPurchase[21]; // Create customer purchase array // Constructor to open inventory input file ifstream InputInventory ("inventory.txt", ios::in); //If ifstream could not open the file if (!InputInventory) { cerr << "File could not be opened" << endl; exit (1); }//end if int x = 0; while (!InputInventory.eof () ) { int iTempPluCode; string sTempDescription; double dTempPrice; int iTempType; double dTempInventory; InputInventory >> iTempPluCode >> sTempDescription >> dTempPrice >> iTempType >> dTempInventory; paInventory[x].setiPluCode(iTempPluCode); paInventory[x].setsDescription(sTempDescription); paInventory[x].setdPrice(dTempPrice); paInventory[x].setiType(iTempType); paInventory[x].setdInventory(dTempInventory); x++; } bool bQuit = false; //CREATE MY TOTAL VARIABLE HERE! int iUserItemCount; do { int iUserPLUCode; double dUserAmount; double dAmountAvailable; int iProductIndex = -1; //CREATE MY SUBTOTAL VARIABLE HERE! while(iProductIndex == -1) { cout<<"Please enter the PLU Code of the product."<< endl; cin>>iUserPLUCode; for(int i = 0; i < 21; i++) { if(iUserPLUCode == paInventory[i].getiPluCode()) { dAmountAvailable = paInventory[i].getdInventory(); iProductIndex = i; } } //PLU code entry validation if(iProductIndex == -1) { cout << "You have entered an invalid PLU Code."; } } cout<<"Enter the quantity to buy.\n"<< "There are "<< dAmountAvailable << "available.\n"; cin>> dUserAmount; while(dUserAmount > dAmountAvailable) { cout<<"That's too many, please try again"; cin>>dUserAmount; } paPurchase[iUserItemCount].setiPluCode(iUserPLUCode);// Array of objects function calls paPurchase[iUserItemCount].setdInventory(dUserAmount); paPurchase[iUserItemCount].setdPrice(paInventory[iProductIndex].getdPrice()); paInventory[iProductIndex].setdInventory( paInventory[iProductIndex].getdInventory() - dUserAmount ); iUserItemCount++; cout <<"Are you done purchasing items? Enter 1 for yes and 0 for no.\n"; cin >> bQuit; //NOTE: Put Amount * quantity for subtotal //NOTE: Put code to update subtotal (total += subtotal) // NOTE: Need to create the output txt file! }while(!bQuit); return 0; }

    Read the article

  • new >> how would i read a file that has 3 columns and each column contains 100 numbers into an array

    - by user320950
    int exam1[100];// array that can hold 100 numbers for 1st column int exam2[100];// array that can hold 100 numbers for 2nd column int exam3[100];// array that can hold 100 numbers for 3rd column void main() { ifstream infile; int num; infile.open("example.txt");// file containing numbers in 3 columns if(infile.fail()) // checks to see if file opended { cout << "error" << endl; } while(!infile.eof()) // reads file to end of line { for(i=0;i<100;i++); // array numbers less than 100 { while(infile >> [exam]); // while reading get 1st array or element ???// how will i go read the next number infile >> num; } } infile.close(); }

    Read the article

  • c++ library for endian-aware reading of raw file stream metadata?

    - by Kache4
    I've got raw data streams from image files, like: vector<char> rawData(fileSize); ifstream inFile("image.jpg"); inFile.read(&rawData[0]); I want to parse the headers of different image formats for height and width. Is there a portable library that can can read ints, longs, shorts, etc. from the buffer/stream, converting for endianess as specified? I'd like to be able to do something like: short x = rawData.readLeShort(offset); or long y = rawData.readBeLong(offset) An even better option would be a lightweight & portable image metadata library (without the extra weight of an image manipulation library) that can work on raw image data. I've found that Exif libraries out there don't support png and gif.

    Read the article

  • vector segmentation fault

    - by user1849298
    I have a problem with the segmentation fault. Look: #include<fstream> using namespace std; int main(){ int n,i,vector[10001],vectorcopy[10001]; ifstream in("program.in"); ofstream out("program.out"); in>>n; for(i=1;i<=n;i++){ in>>vector[i]; vectorcopy[i]=vector[i]; } return 0;} And the debugger says: Program recived signal SIGSEGV, Segmentation fault Please, tell me what to do!

    Read the article

  • How to dump STDIN to a file, using C++ STL?

    - by Jimm Chen
    HHello all, this is a straight forward question, but not a straight forward answer can be found by just Googling today. Hope someone can show me a concise answer before I dig into those thick C++ books and finally find the solution out. Thank you. I'm writing this program so to make a workaround in this issue: Why do I get 'Bad file descriptor' when trying sys.stdin.read() in subversion pre-revprop-change py script? Note: Content from STDIN may be arbitrary binary data. Please use C++ STL functions, iostream, ifstream etc . If the file creation/writing failed, I'd like to catch the exception to know the case.

    Read the article

  • How to read the whole istream correctly?

    - by L.Lawliet
    Here is a simple code to print all characters of a txt file on screen: #include <iostream> #include <fstream> #include <string> using namespace std; int main() { int **i; int j,k; char a; ifstream test("test.txt", ios::binary); while((a=test.get())!=-1)//if I use "while(!test.eof())" here, how to avoid the output of the last character(-1) to std::cout, or any ostream objects? { putchar(a);//also change this to putchar(test.get()); } getchar(); } As I noted in the code, if I use "test.eof()" to judge the end of test.txt, I'll always get an extra blank at the end of the output. How to avoid it?

    Read the article

  • Howto read only one line via c++ from a data

    - by Markus Hupfauer
    i tryed to read the first line of a .dat data, but when i tryed to give to text, wich was saved in the .dat data, it print out the whole data, not only one line. the tool is also not looking after breaks or spaces :( Im using the following code: //Vocabel.dat wird eingelesen ifstream f; // Datei-Handle string s; f.open("Vocabeln.dat", ios::in); // Öffne Datei aus Parameter while (!f.eof()) // Solange noch Daten vorliegen { getline(f, s); // Lese eine Zeile cout << s; } f.close(); // Datei wieder schließen getchar(); . So could u help me please ? . Thanks a lot Markus

    Read the article

  • String vectors not working as expected with newline and iterators? (C++)

    - by kevin
    I have a text file made of 3 lines: Line 1 Line 3 (Line 1, a blank line, and Line 3) vector<string> text; vector<string>::iterator it; ifstream file("test.txt"); string str; while (getline(file, str)) { if (str.length() == 0) str = "\n"; // since getline discards the newline character, replacing blank strings with newline text.push_back(str); } // while for (it=text.begin(); it < text.end(); it++) cout << (*it); Prints out: Line 1 Line 3 I'm not sure why the string with only a newline was not printed out. Any help would be appreciated. Thanks.

    Read the article

  • What does the C++ compiler error "looks like a function definition, but there is no parameter list;"

    - by SkyBoxer
    #include <iostream> #include <fstream> using namespace std; int main { int num1, num2; ifstream infile; ostream outfile; infile.open("input.dat"); outfile.open("output.dat"); infile >> num 1 >> num 2; outfile << "Sum = " << num1 + num2 << endl; infile.close() outfile.close() return 0; } This is what I did and when I compile it, I got this error that said error C2470: 'main' : looks like a function definition, but there is no parameter list; skipping apparent body Please don't hate me :( I am new at this computer science....

    Read the article

  • Correct Exceptions in C++

    - by Dr.Ackula
    I am just learning how to handle errors in my C++ code. I wrote this example that looks for a text file called some file, and if its not found will throw an exception. #include <iostream> #include <fstream> using namespace std; int main() { int array[90]; try { ifstream file; file.open("somefile.txt"); if(!file.good()) throw 56; } catch(int e) { cout<<"Error number "<<e<<endl; } return 0; } Now I have two questions. First I would like to know if I am using Exceptions correctly. Second, (assuming the first is true) what is the benefit to using them vs an If else statement?

    Read the article

  • How to insert into std::map.

    - by Knowing me knowing you
    In code below: map<string,vector<int>> create(ifstream& in, const vector<string>& vec) { /*holds string and line numbers into which each string appears*/ typedef map<string,vector<int>> myMap; typedef vector<string>::const_iterator const_iter; myMap result; string tmp; unsigned int lineCounter = 0; while(std::getline(in,tmp)) { const_iter beg = vec.begin(); const_iter end = vec.end(); while (beg < end) { if ( tmp.find(*beg) != string::npos) { result[*beg].push_back(lineCounter);//THIS IS THE LINE I'M ASKING FOR } ++beg; } ++lineCounter; } return result; } How should I do it (check line commented in code) if I want to use insert method of map instead of using operator[]? Thank you.

    Read the article

  • Reading long lines from text file

    - by sonofdelphi
    I am using the following code for reading lines from a text-file. What is the best method for handling the case where the line is greater than the limit SIZE_MAX_LINE? void TextFileReader::read(string inFilename) { ifstream xInFile(inFilename.c_str()); if(!xInFile){ return; } char acLine[SIZE_MAX_LINE + 1]; while(xInFile){ xInFile.getline(acLine, SIZE_MAX_LINE); if(xInFile){ m_sStream.append(acLine); //Appending read line to string } } xInFile.close(); }

    Read the article

  • c++: how can i read a file line by line to a string type variable?

    - by ufk
    Hiya. I'm trying to read a file line by line to a string type variable using the following code: #include <iostream> #include <fstream> ifstream file(file_name); if (!file) { cout << "unable to open file"; exit(1); } string line; while (!file.eof()) { file.getline(line,256); cout<<line; } file.close(); it won't compile when I try to use String class, only when i use char file[256] instead. how can I get line by line into a string class? thanks!

    Read the article

  • Write set of integers to std::ofstream and be able to read them back

    - by bndu
    Hello, I need to write a bunch of unsigned integers to std::ofstream in binary mode: std::ofstream f; f.open("some path", std::ios::out | std::ios::binary); // some loop { unsigned int k = get_k(); // may product numbers from 0 to 65535 f << k; } f.close(); They are written to the output file "as is" w/o any delimiter. So when I'm trying to read them back (expecting to get what I wrote) using std::ifstream I get very strange values. What I'm doing wrong? Or I should to put ' ' (space) to the stream after any added number to separate them? Thanks.

    Read the article

  • How to check whether iterators form a contiguous memory zone?

    - by Vincent
    I currently have the following function to read an array or a vector of raw data (_readStream is a std::ifstream) : template<typename IteratorType> inline bool MyClass::readRawData( const IteratorType& first, const IteratorType& last, typename std::iterator_traits<IteratorType>::iterator_category* = nullptr ) { _readStream.read(reinterpret_cast<char*>(&*first), (last-first)*sizeof(*first)); return _readStream.good(); } First question : does this function seem ok for you ? As we read directly a block of memory, it will only work if the memory block from first to last is contiguous in memory. How to check that ?

    Read the article

< Previous Page | 1 2 3 4 5 6 7 8 9 10  | Next Page >