這是一個簡單程序的代碼,用於統計多少個字符串輸入是多餘的。 除了我需要輸入兩次結束文件(ctr + z)才能結束循環並獲得結果,一切看起來都正常。我無法弄清楚爲什麼會發生這種情況。C++ count冗餘字符串
回答
這樣看來,你正試圖走出EOF字符以線序的結尾:
> This is my inputEOF
這將迫使你進入另一個EOF
真正結束流。如果你想用一個EOF結束流,你需要點擊進入第一:
> This is my inputENTER
> EOF
請注意,受支持的OS(Linux,OS X等)上的Ctrl-D行爲方式相同。 – WhozCraig
我在問題中運行了代碼,並且發現了另一個奇怪的事情:如果輸入是:like like hateEOF hateEOF愛EOF(在新行中)結果是:相同的字符串編號:1,但它是2!你能解釋一下嗎? –
@ T-D您必須在EOF標記('std :: cin.clear()')之後清除錯誤狀態。在嘗試重新閱讀之前,您還需要忽略EOF字符。請記住,以這種方式使用EOF(意思是「流結束」)應該實際上意味着輸入流的結束。把它當作入場券之間的休息並不是好習慣。 –
您可以顯著簡化你的代碼,如果你使用std::set
int main()
{
cout << "Input strings(end-of-file to exit):"<<endl;
set<string> strings;
string x;
int same_string=0;
while (cin >> x)
{
if(!strings.insert(x).second) ++same_string;
}
cout << "Same string number:" << same_string << endl;
system("pause");
return 0;
}
- 1. 這個VBScript字符串與空字符串冗餘比較嗎?
- 2. 什麼是C#中字符串最快的冗餘校驗和?
- 3. C#冗餘代表
- 4. 抽象類字段冗餘C#
- 5. 模式中的冗餘轉義字符
- 6. C#複選框冗餘
- 7. C中的文件冗餘
- 8. 如何檢查MS Word中特定字符串的冗餘?
- 9. Errror字符串美中不足的是:冗餘與grep命令
- 10. 帶有空字符串的PHP SimpleXML :: addChild - 冗餘節點
- 11. 實體框架 - 冗餘連接字符串
- 12. 排除包含不同字符串的冗餘行
- 13. CRC32(循環冗餘校驗和)到字符串
- 14. 'this'關鍵字冗餘
- 15. 冗餘代碼
- 16. 冗餘式
- 17. C#JSON其餘響應字符串
- 18. 減少Makefile冗餘
- 19. CLR類冗餘
- 20. Sendrecv_replace冗餘?
- 21. 冗餘實例
- 22. 冗餘驗證?
- 23. 刪除冗餘
- 24. 冗餘鑄造
- 25. Python的冗餘
- 26. HDFS和冗餘
- 27. 找出冗餘
- 28. 冗餘列
- 29. AppFabric的冗餘
- 30. MSMQ冗餘
'而(CIN >> X) 「可能不會做你認爲的事!請參見[這裏](http://stackoverflow.com/search?q= [c%2B%2B] +%22while +%28cin +%3E%3E + x%29%22)... –
[while cin >> x)和文件結束問題](http://stackoverflow.com/questions/1078218/while-cin-x-and-end-of-file-issues) –
@ g-makulik這不是在這個循環之後,cin不再被使用 – Slava