std::streamstring
'dan verileri nasıl okuyacağımı test ediyordum, ancak yanlış anladım, sorunun ne olduğunu işaret edebilir mi? ve okumak için doğru bir yol?Dize akışından içeriği okuma
#include <iostream>
#include <string>
#include <sstream>
#define BUFFER_SIZE 16
int main(int argc, char ** argv)
{
std::stringstream ss;
ss << "Un texto con datos de ejemplo para probar la extacción de un stream";
std::cout << "Stream contents: '" << ss.str() << "'" << std::endl;
char buffer[BUFFER_SIZE] = {0};
std::streamsize read = 0;
do {
read = ss.readsome(buffer, BUFFER_SIZE - 1);
std::cout << "Read: " << ss.gcount() << std::endl;
std::cout << buffer << std::endl;
std::cout << "---" << std::endl;
std::fill(buffer, buffer + BUFFER_SIZE, 0);
} while (read > 0);
return 0;
}
Ve çıktı alıyorum::
Benim test kodudur
Stream contents: 'Un texto con datos de ejemplo para probar la extacci¾n de un stream'
Read: 15
Un texto con da
---
Read: 15
tos de ejemplo
---
Read: 15
para probar la
---
Read: 15
extacci¾n de un
---
Read: 5
stre
---
Read: 0
---
son okuma işlemi son iki 'am dışarıda bırakarak sadece 5 karakter okur fark edebilirsiniz gibi 'onu okuyabilmiş olsa bile. Ben somtehing eksik miyim?
Sanırım "wchar_t" akışları ve dizeleriyle çalışmanız gerekiyor. – Nawaz
'ó 'ile düzenli bir' o' değiştirilmesi, aynı sonuçla sonuçlanır. Niçin 'wchar_t' ile çalışmalıyım? –
Kodunuzu bir .cpp dosyasına kopyaladım ve argüman olmadan g ++ kullanarak derledim. Makinemde, tüm akış kesilmeden yazdırılır, ancak ilk okunma sadece bir karakteri alır. Gcc 4.9.2 ve glibc 2.21-3 kullanıyorum. –