2014-06-16 107 views
-1

我已經做了大約一小時左右的研究,但是我找不到適合自己的方法,因爲我不明白緩衝區是如何工作的。我試過了to_string方法,我試過.append()方法,顯然是一個簡單的連接方法。如何將int連接到字符串?

我的代碼:

fileLog[fileLogIndex].append(playerTurn+":"+moveColumn); 
//fileLog[fileLogIndex] += playerTurn && ":" && moveColumn && ", "; 

所以。這個或者我的想法的目的是爲了跟蹤我今天寫的連接4遊戲中的每一個動作。這應該附加每一步,以上述格式。 PlayerTurn存儲爲一個int,1是玩家1,2是玩家2,而moveColumn變量是用戶選擇放置棋子的列。如果玩家1將一段文字放入第4列,則該想法是將「1:4」附加到該變量,然後將該行寫入文件。正如你所看到的,我已經嘗試了一些方法,比如append,即使你看不到,我也嘗試過to_string()方法,但是我得到一個錯誤或者「1:1」在dos窗口中給我一個笑臉,或在打開文件時在記事本++中爲null。

我不想使用一種我不明白的方法,所以我很抱歉如果這是另一個線程的重複,我只是厭倦了盯着這一行代碼,並且無法使用這些方法我在嘗試。如果我必須使用緩衝區來做到這一點,那麼很好,但是有人能夠用一些新鮮的術語向我解釋每一行的內容嗎?

爲了記錄,我正在使用Visual Studio 2010,並且我90%確定我沒有C++ 11,而我在某處閱讀的原因是to_string未按預期工作。

+0

您能不能告訴你如何使用'to_string()',錯誤是什麼? –

+0

原始類型不能讓它們的操作符重載,所以你有:'int' +'char *'+'int'也被稱爲指向字符串'「的指針:」'由'playerTurn + moveColumn'遞增,如果總和是更小的0或更大2. – Deduplicator

+0

可能重複[C++連接字符串和int](http://stackoverflow.com/questions/191757/c-concatenate-string-and-int)和[C++ int到字符串,連接字符串](http://stackoverflow.com/questions/18726568/c-int-to-string-concatenate-strings) – jww

回答

2

C++的方式做到這一點(即不使用c的緩衝區和sprintf)不使用C++ 11的to_string是使用構建字符串的ostringstream

#include <sstream> 

ostringstream out; 
out << playerTurn << ":" << moveColumn; 
fileLog[fileLogIndex] += out.str(); 
+0

我在http://stackoverflow.com/questions/191757/c-concatenate-string-and-int上看到了這個,但沒有人提到include文件。我想這就是我懶得研究。我會盡快回復並回復。 – Skjaz

+0

太棒了。對我的問題的一個非常直接的答案。我會在某處記下這一點。感謝您的解決方案。 – Skjaz