io – Input/Ouput

Language Input Output Notes
C scanf("%s", &x) printf("%s", x) Use getline for strings
C++ x >> cin cout << x  
Python x = sys.stdin.readline() print(x) See also raw_input and input
JavaScript process.stdin.on('data', func) console.log(x) Reading from stdin is always async and only available in NodeJS.



printf uses format specifiers that follow %[flags][width][.precision][length]specifier

scanf with “promote” a float to a double, so you can use %f for both, but in C99 you may explicitly use %lf for a double.

There are various C functions to read data from a stream:

TIP: Beware of using scanf followed by a different function to read a string, as scanf will leave the newline in the stream buffer. The following call, e.g. fgets will encounter this newline and immediately return. You can use getchar to eat this newline first.


raw_input is similar to a getline but is only valid in Python 2.

Use sys.stdout.write for more control. Remember to also use sys.stdout.flush to ensure buffer is written immediately.

Some quickies:

print(",".join(map(str, array)))


// Read a string and integer from stdin
Scanner scanner = new Scanner(;
String str =;
int num = scanner.nextInt();
// Read until EOF
Scanner scanner = new Scanner(;
while (scanner.hasNext()) {
    int a = scanner.nextInt();