scanf("%[^\n]",str)函數一次輸入含空格的小技巧

一般大家輸入一串含空格字符串多用gets()函數,但其實對於scanf()也可以實現,筆者無意間看到這種寫法,覺得很神奇也很有用。其中[]中表示字符串集合,^表示後面的字符不被包含。如:輸入一段含空格的字符串且僅回車結束可以用%[^\n]的方式。不過如果想繼續輸入下一段字符串,則需要在前面加一個getchar()將上一次輸入最後的回車符取出,不然下一行的輸入遇到\n就會結束。

#include <iostream>
#include <cstdio>
using namespace std;
int main(){
   char str[100];
   scanf("%[^\n]",str);
   cout<<str<<endl;
   getchar();
   scanf("%[1-9]",str);
   cout<<str<<endl;
   return 0;
}

運行結果:

sd23 sd87 7s8d6 sdf\';/.,sd d
sd23 sd87 7s8d6 sdf\';/.,sd d
87668sdcsd sd76
87668
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章