#include <iostream>
using namespace std;
int main()
{
string previous;
string current;
while (cin >> current)
{
if(current == previous)
{
cout << "repeated word";
}
previous=current;
}
return 0;
}
我的問題是:CIN在while循環
,它指出
while(cin>>current)
,爲什麼整個文本輸入的字符串沒有分配到當前的?我不明白它是如何單獨比較所有單詞的。它是如何獲得一個詞來形容以前。它如何知道2個相同的單詞是相鄰的?
編輯:我想我只是明白了爲什麼。告訴我,如果我錯了,但我認爲它是因爲編譯器在該空間停止cin
賦值,並且第一個單詞被分配給current,然後它將它與前一個單詞進行比較,但由於它是第一個單詞,因此它沒有一個前一個單詞,因此它只是將第一個單詞分配給前一個單詞,並比較該句子中的下一個單詞,直到沒有剩餘單詞。我相當肯定這是它的工作方式,但我會留下來以防萬一有人想知道類似的東西。
流轉換爲字符串讀取字符直到下一個空格。剩下的事情:創建一個例子,並在循環的每一輪記下每個變量的值。 – stefan 2013-05-04 08:26:17
這是瞭解'cin'如何工作的一個重要課程,僅僅是因爲你鍵入了一些東西,而某些東西已被讀取,並不意味着你輸入的所有內容都被讀取了。做好你自己的想法。 – john 2013-05-04 08:34:23