因為你沒有講 x 的型態是什麼,
所以下面是以 x 的型態為 STL 的 string 來做回答~
getline(cin, string) 會讀取一整行的輸入,
也就是讀取到 換行('\n') 或 EOF 才會停止,
其中會把 換行字元 讀取掉但其並不會儲存於 string 之中~
而 cin>>string 則是讀取一段連續的非空白字元,
其操作相當於先略過 空白字元(包括' ', '\0', '\n', '\t' 等等) 直到 非空白字元 為止,
並讀取連續的非空白字元直到 空白字元 或 EOF 才會停止,
其 string 中所儲存的只會有 非空白字元 而已~
假設一段輸入資料如下:
" owo abc\n123\n", (注意第一個字元是 ' ' )
執行 getline(cin, string) 之後的結果,
string 會儲存 " owo abc", (有包含第一個字元的 ' ' , 但不包含 '\n' )
剩餘的輸入資料為 "123\n", (第一個 '\n' 會被讀取掉)
執行 cin>>string 之後的結果,
string 會儲存 "owo", (不包含第一個字元的 ' ' )
剩餘的輸入資料為 " abc 123\n", (並不會讀取掉之後的 空白字元 , 所以第一個字元是 "owo" 之後的 ' ' )
以上希望有幫助到你~ OwO