我試圖將一個字符串從getline(file,line)
比較另一個字符串與std::string s="mmee"
:比較字符串從一個文件C++
if (line==s){}
,但是這是從來沒有執行。爲什麼??裏面的文件我有:
mmee
hello
hey
如何修剪空格或從字符串行輸入?
我試圖將一個字符串從getline(file,line)
比較另一個字符串與std::string s="mmee"
:比較字符串從一個文件C++
if (line==s){}
,但是這是從來沒有執行。爲什麼??裏面的文件我有:
mmee
hello
hey
如何修剪空格或從字符串行輸入?
你的代碼是正確的。
請檢查您的輸入文件以確認沒有前導或尾隨空格。
我有一些權限問題 – 2012-01-16 16:33:58
std::getline()
默認讀取到第一個換行符。您可以指定到你想要的功能來讀取字符,像這樣:
getline(file, line, ' '); // not the space between single quote chars
這將讀取你的榜樣文件的唯一「MMEE」部分(MMEE你好哎)。
編輯:這是我讀你的例子。誰編輯OP人們只是假定輸入文件是mmee\nhello\nhey
合理的假設,這三個單詞全部在單獨的行中,只是沒有縮進,所以它們在編輯之前在一行上呈現。 – 2012-01-16 14:00:08
您可以通過使用
的std ::刪除(astring.begin(),astring.end(),'「)去除空間;
之後可以比較字符串。
退房的鏈接:: http://www.cplusplus.com/forum/beginner/863/
您可以比較字符串:http://www.cplusplus.com/reference/string/string/compare/
(astring.begin(),astring.end(),'')是否存在空格或不存在/ – 2012-01-16 12:11:11
std :: remove在e – 2012-01-16 12:14:56
不工作是的他們是sapce''...只需檢查此鏈接http ://www.cplusplus.com/forum/beginner/863/ – 2012-01-16 12:16:35
文件中的行是「mmee hello hey」?因爲如果是這樣,我看不出兩個字符串應該匹配的原因。 – 2012-01-16 11:46:10
你怎麼知道不執行操作? – 2012-01-16 11:50:09
你是什麼意思「這永遠不會執行」?你的意思是返回false,沒有達到代碼行,運行時錯誤....什麼?你還試過調試嗎? – 2012-01-16 11:52:44