如何將istream轉換爲字符串,當我的istream還包含換行符時,我不想轉義空格? 謝謝。Istream在C++中使用 n字符進行字符串轉換
-3
A
回答
0
如果您的意思是如何將整個std::istream
複製到std::string
那麼有很多方法。
這裏是一個:
int main()
{
// here is your istream
std::ifstream ifs("test.txt");
// copy it to your string
std::string s;
for(char c; ifs.get(c); s += c) {}
// display
std::cout << s << '\n';
}
0
你可以只分配一個字符串足夠大,你的整個文件,並在一次閱讀:
ifstream fd(filename); // open your stream (here a file stream)
if (!fd)
exit(1);
fd.seekg(0, ios_base::end); // go to end of file
size_t filesize = fd.tellg(); // dtermine size to allocate
fd.seekg(0, ios_base::beg); // go to the begin of your file
string s; // create a new string
s.resize(filesize+1); // reserve enough space to read
fd.read(&s[0], filesize); // read all the file at one
size_t bytes_read = fd.gcount(); // it could be than less bytes are read
s.resize(bytes_read); // adapt size
1
可以使用istreambuf_iterator
像
#include <iostream>
#include <string>
#include <fstream>
int main()
{
std::ifstream ifile("test.txt"); // open
std::string str(std::istreambuf_iterator<char>(ifile), {}); // initialize
std::cout << str; // display
}
相關問題
- 1. 使用Spark進行字符串轉換
- 2. 找換行字符「\ n」的字符串
- 3. 如何忽略istream的字符串\ n
- 4. 使用TEXT公式字符限制進行字符串轉換?
- 5. C++字符串到字符串轉換
- 6. 在Java中使用換行符「\ n」的字符串=>如何轉換爲markdown?
- 7. C#使用換行符對文本字符串進行編碼
- 8. C#從\ n轉換SQL字符串用\ r \ n
- 9. 從字符串轉換爲字符 - C++
- 10. C++ - 將字符串轉換爲字符
- 11. C++字符串到字符轉換
- 12. 字符串轉換爲字符串不使用C宏
- 13. 如何使用C#將字符串轉換爲PascalCase字符串?
- 14. C#換行符每n個字符
- 15. 用IEnumerable和C#中的字符串進行轉換的錯誤#
- 16. 在C++中進行雙重轉換的字符串
- 17. 從字符串傳遞n個字符以在C中運行
- 18. 字符串轉換爲++宏使用C
- 19. 轉換JSON字符串字典在C#
- 20. 將字符串轉換爲字符串
- 21. C字符串轉換
- 22. 字符串轉換C#
- 23. C++/CLI字符串轉換
- 24. C++字符串雙轉換
- 25. 字符串轉換c#
- 26. 將字符串插入MySQL後,字符'\ n'(換行符)消失
- 27. 十進制字符串到字符ASCII轉換 - C
- 28. 使用字符串流將字符串轉換爲__uint128_t
- 29. C++和c#轉換字節字符串
- 30. 轉換字符串字符串字面
您的意思是您希望字符串包含文字字符''''和''n''而不是換行符? –
即使只是詢問將一個流「轉換」爲一個字符串,也意味着一個根本性的誤解。流是數據流,而字符串是字節的容器。這兩者完全不同。你的意思是你希望從流中提取所有字節到一個字符串,直到流乾燥(達到EOF)?或者是什麼?具體而準確。 –
未格式化的輸入功能? 'noskipws'?用'istreambuf_iterator's初始化它? –
chris