Cin-Cout vs Scanf-Printf

Regular competitive programmers face common challenge when input is large and the task of reading such an input from stdin might prove to be a bottleneck. Such problem is accompanied with “Warning: large I/O data”.

Let us create a dummy input file containing a line with 16 bytes followed by a newline and having 1000000 such lines, making a file of 17MB should be good enough.

// Creating a dummy file of size 17 MB to compare 
// performance of scanf() and cin()
$ yes 1111111111111111 | head -1000000 > tmp/dummy

Let us compare the time taken to read the file from stdin (get the file from disk to stdin using redirection) by using scanf() versus cin.

// Filename : cin_test.cc to test the 
// We redirect above created temp file 
// of 17 MB to stdin when this program 
// is run.
#include<iostream>
using namespace std;
  
int main()
{
    char buffer[256];
    while (cin >> buffer)
    {
    }
    return 0;
}
1 comment
Comment actions Permalink
Official comment
Dear customer,
Please be aware that the AppCode community forum was deprecated and closed for comments on March 31, 2020.
To see further details please follow this link: https://intellij-support.jetbrains.com/hc/en-us/community/posts/360007631480-The-AppCode-Community-Forum-Is-Deprecated
Thank you for your understanding.
JetBrains

Please sign in to leave a comment.