Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Парсинг потоками - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Связный список http://www.cyberforum.ru/cpp-beginners/thread366546.html
... struct node { int data; node *next; }; ... node *temp; 1.temp = (node*)malloc(sizeof(node));
C++ Функция // binary_search_with_fun.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <iostream> using namespace std; int *Bin_Srch(int *first, int *last,... http://www.cyberforum.ru/cpp-beginners/thread366544.html
Подсчет через count_if C++
Есть, например, функция, принимающая 2 параметра bool BoolFunction ( параметр1, параметр2 ) { // что - то там } где параметр1 - это элемент типа вектора нужно подсчитать в векторе,...
C++ Ввести размерность матрицы с клавиатуры
Задача: создать массив N*M, (ввод размерности с клавиатуры) и вывести его на экран. Написала код, но где-то видимо туплю, помогите, пожалуйста.:-#include <iostream> using namespace std; int main()...
C++ Написать программу. Строка, состоящая из символов... http://www.cyberforum.ru/cpp-beginners/thread366531.html
Задана строка, состоящая из символов. Символы объединяются в слова. Слова друг от друга отделяются одним или несколькими пробелами. В конце текста ставится точка. Текст содержит не более 255...
C++ Скопировать элементы большие числа а в другой динамически созданный массив Организовать ввод динамического массива размером N. Скопировать элементы большие числа а(а вводится пользователем) в другой динамически созданный массив. Главное чтобы это было все с... подробнее

Показать сообщение отдельно
CEBEP
106 / 106 / 9
Регистрация: 21.03.2010
Сообщений: 440
16.10.2011, 07:04  [ТС]
C++
1
2
3
4
bufer.reserve(fSize+1);
f.read( &bufer.at(0), fSize );
bufer[fSize] = '\0';
std::istringstream stream(bufer);
Этот способ никуда не годится. С одной стороны, память под строку действительно выделена, но длинна строки внутри класса после такой записи остаётся нулевой. Это приводит к тому, что при обращении к любому символу строки генерится ошибка а при попытке вывести такую строку выводится пустая строка. Здесь подходит
C++
1
2
3
std::string bufer;
bufer.resize(fSize + 1);
file.read( &bufer.at(1),  fSize  );
и присовение последнему символу '\0' тогда не нужно.
Кстати, << и >> в принципе годятся и для бинарного файла. Например,
C++
1
std::cout << file.rdbuf();
работает на ура.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru