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

Лишние символы при чтении из файла - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Командная строка http://www.cyberforum.ru/cpp-beginners/thread450763.html
Здравствуйте. Возможна тема, подобная этой уже создавалась, в любом случае не нашел и, если что - прошу прощения. Суть проблемы такова: написал элементарную программу: #include <iostream> using namespace std;
C++ Иконка для консольного приложения Всем привет !! Возник такой вопрос можно ли консольной программе дать иконку которую ты хочешь а не скучную стандартную . если да то как ? http://www.cyberforum.ru/cpp-beginners/thread450761.html
C++ Как работает эта программа?
Помогите пожалуйста построчно/блочно определить, что делается в программе. Заранее благодарю! Задача На стороне оператора установлен SMS шлюз, который по некоторому протоколу принимает сообщения и передаёт их конечным абонентам. У шлюза есть память, которая может хранить не более M сообщений. Шлюз работает циклично, каждый цикл состоит из следующих шагов: 1) Шлюз принимает заявки на...
среди чисел a, b, c найти пару с наибольшей суммой C++
#include <iostream.h> using namespace std; int main() int a,b,c; int max; cout<<"vvesti chislo a:\t"; cin>>a; cout<<"vvseti chislo b:\t"; cin<<b; cout<<"vvesti chislo c:\t";
C++ пременение операторов в конкретной задаче http://www.cyberforum.ru/cpp-beginners/thread450751.html
Есть объект. Например TPoint; Например такой: class TPoint { TPoint(X,Y,ID) { FX=X; FY=Y; ID = FID; }; short FX,FY,FID; }
C++ Виртуальные функции Составьте программу с использованием виртуальных функций для вычислений по следующей формуле: z=2+a, если а>=0 z=a*a, если a<=0 При условии, что значение а вводится при выполнении программы. Вот недоработаннный текст: #include <iostream.h> class base { private: int a; подробнее

Показать сообщение отдельно
forik
25 / 19 / 1
Регистрация: 10.10.2009
Сообщений: 75

Лишние символы при чтении из файла - C++

22.02.2012, 09:29. Просмотров 1083. Ответов 1
Метки (Все метки)

Здравствуйте!
Есть текстовый файл следующего содержания:

DROP FUNCTION IF EXISTS NumericOnly;

CREATE FUNCTION NumericOnly (val VARCHAR(255))
RETURNS VARCHAR(255)
BEGIN
DECLARE idx INT DEFAULT 0;
IF ISNULL(val) THEN RETURN NULL; END IF;

IF LENGTH(val) = 0 THEN RETURN ""; END IF;
SET idx = LENGTH(val);
WHILE idx > 0 DO
IF IsNumeric(SUBSTRING(val,idx,1)) = 0 THEN
SET val = REPLACE(val,SUBSTRING(val,idx,1),"");
SET idx = LENGTH(val)+1;
END IF;
SET idx = idx - 1;
END WHILE;
RETURN val;
END;


Читаю его следующим образом:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
FILE *sign;
fopen_s(&sign, "\\path\\file.txt", "rb");
BYTE *content = MyReadFile(sign);
 
BYTE* MyReadFile(FILE *f)
{
    size_t result;
    BYTE *buffer;
    long lSize;
    if (f == NULL) 
    {
        fputs ("File error", stderr); 
        exit (1);
    }
 
    fseek (f, 0, SEEK_END);
    lSize = ftell (f);
    rewind (f);
 
    //buffer = (BYTE*) malloc (sizeof(char)*lSize);
    buffer = new BYTE[lSize];
    if (buffer == NULL) 
    {
        fputs ("Memory error", stderr); 
        exit (2);
    }
 
    result = fread (buffer, 1, lSize, f);
    if (result != lSize) 
    {
        fputs ("Reading error",stderr); 
        exit (3);
    }
    
    fclose (f);
    return buffer;
}
При чтении размер
C++
1
lSize = ftell (f);
равен 479 байт, при выделении памяти
C++
1
buffer = new BYTE[lSize];
размер буфера равен 496 байт. При чтении же на место дишних 17 байт встают символы ээээ««««««««юоюою.

Что это такое-то?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru