本文作者frankchenfu,blogs網址http://www.cnblogs.com/frankchenfu/,轉載請保留此文字。
C++是一種常用的編程語言。一個完整的程序至少要有一個輸出,而我們也經常需要在程序內進行大量輸入和輸出。所以今天,我和大家談一談輸入和輸出。
1、cin和cout。可以連續輸入,使用流(>>)。有專門的輸出的換行“endl”。
cin>>a>>b; cout<<"asdasdasd"<<endl;
2、scanf和printf。scanf和printf雖然需要占位符,不是很方便,而且容易因為系統影響在評測時莫名出錯,但是它的效率大幅超過了cin和cout。
scanf("%d%lf",number,score); printf("%d\n",rank);
3、getchar和putchar。getchar和putchar本是字符的輸入和輸出,但是因為快,所以更經常用於輸入輸出優化。下面的代碼是針對全體整數的(輸出需要自己輸出時改符號哦)。
int s() { char ch=getchar(); int re=0; bool fl=1; if(ch=='-') { fl=0; ch=getchar(); } while(ch>='0'&&ch<='9') { re=re*10+ch-'0'; ch=getchar(); } return fl?re:-re; } void w(int r) { if(r>9) w(r/10); putchar(r%10+'0'); }
沒有負號?更簡單:
int s() { char ch=getchar(); int re=0; while(ch<'0'||ch>'9') ch=getchar(); while(ch>='0'&&ch<='9') { re=(re<<3)+(re<<1)+ch-'0'; ch=getchar(); } return re; }
當然,也可以用於字符的輸入輸出。例如,
a=getchar(); putchar('\n');
4、gets和puts,以及getline。
這些都是針對字符串的,在寫高精度的時候也會用到。需要注意的是,puts是包括輸出一個換行符的,也就是說,如果輸出后不想換行,只能使用printf("%s",……)了。
gets(a1); puts("asdasdasd"); getline(cin,s1);
希望對大家有所幫助,謝謝。
