How to implement own function to read int?
Difference between en1 and en2, changed 758 character(s)
I very much like $cin >> $ but want to have [this fast reading integers function](https://codeforces.com/blog/entry/8080?#comment-138179). How to do it? For example, I want to input multiple integers in this $cin >> a >> b >> c;$ but the reading of integers is using the comment above.

I tried this but it didn't work.↵

~~~~~↵
istream & operator >> (istream& os, int x) {↵
bool minus = false;↵
int result = 0;↵
char ch;↵
ch = getchar();↵
while (true) {↵
if (ch == '-') break;↵
if (ch >= '0' && ch <= '9') break;↵
ch = getchar();↵
}↵
if (ch == '-') minus = true; else result = ch-'0';↵
while (true) {↵
ch = getchar();↵
if (ch < '0' || ch > '9') break;↵
result = result*10 + (ch - '0');↵
}↵
if (minus)↵
os >> -result;↵
else↵
os >> result;↵
return os;↵
}↵
~~~~~↵

But I got this error↵

~~~~~↵
 error: ambiguous overload for 'operator>>' (operand types are 'std::istream' {aka 'std::basic_istream<char>'} and 'int')↵
  124 |   os >> result;↵
      |   ~~ ^~ ~~~~~~↵
      |   |     |↵
      |   |     int↵
~~~~~

History

 
 
 
 
Revisions
 
 
  Rev. Lang. By When Δ Comment
en2 English Qualified 2020-10-06 00:18:45 758
en1 English Qualified 2020-10-06 00:07:46 327 Initial revision (published)