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

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

Восстановить пароль Регистрация
 
Pashaa2
1 / 1 / 0
Регистрация: 23.03.2015
Сообщений: 58
09.07.2015, 15:34     Лишние символы в конце строки, записанной в файл #1
Записываю текст в бинарный файл, но в файле нет каракуль а этот же текст. И плюс к тексту добавляться левые символы. (смотреть рисунок)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include
#include 
using namespace std;
void main()
{
char a[305]={"Each individual state has its own sys-tem of public schools."}; 
char d[305];
int x=0; 
x=strlen(a);
fstream out("F:\\scan.txt",ios:: binary|ios::out);
out.write((char*)&a,x*sizeof(char));
out.read((char*)&d,x*sizeof(char));
cout<<d;
out.close();
system("PAUSE");
}
вот что в документе
Each individual state has its own sys-tem of public schools.НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.07.2015, 15:34     Лишние символы в конце строки, записанной в файл
Посмотрите здесь:

C++ Дан файл, компонентами которого являются символы. Переписать все символы в новый файл в обратном порядке.
C++ Сформировать строку S таким образом, чтобы в нее попеременно вошли четные символы строки S1 и нечетные символы строки S2.
C++ Текстовый файл состоит из нескольких строк. Записать во второй файл последние символы из каждой строки первого файла
Почему в конце символьной строки появляются разные символы, и что с ними делать? C++
C++ Лишние символы при записи в файл
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lss
919 / 849 / 281
Регистрация: 10.10.2012
Сообщений: 2,701
09.07.2015, 15:44     Лишние символы в конце строки, записанной в файл #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Pashaa2 Посмотреть сообщение
Записываю текст в бинарный файл, но в файле нет каракуль а этот же текст.
Текст, при любом режиме записи, будет выглядеть, в текстовом редакторе, как текст.
Цитата Сообщение от Pashaa2 Посмотреть сообщение
И плюс к тексту добавляться левые символы. (смотреть рисунок)
Цитата Сообщение от Pashaa2 Посмотреть сообщение
x=strlen(a);
Это количество символов Си-строки без '\0'. Чтобы и '\0' записался - увеличь на единицу.
Max Dark
В поиске работы
 Аватар для Max Dark
1546 / 1399 / 501
Регистрация: 09.10.2013
Сообщений: 3,185
Записей в блоге: 8
Завершенные тесты: 2
09.07.2015, 15:45     Лишние символы в конце строки, записанной в файл #3
Pashaa2, вы забыли про то, что строки "в стиле Си" заканчиваются символом '\0'.
вот и выводится все подряд до первого нулевого байта.
добавьте после операции чтения
C++
1
d[x] = 0;
и ничего лишнего выводиться не будет
lss
919 / 849 / 281
Регистрация: 10.10.2012
Сообщений: 2,701
09.07.2015, 16:08     Лишние символы в конце строки, записанной в файл #4
Pashaa2, как этот код у тебя вообще работает? Файл открыт для бинарной записи, ты им и пишешь, и читаешь (не закрывая и не передвигая курсор). Это что за среда такая?
Yandex
Объявления
09.07.2015, 16:08     Лишние символы в конце строки, записанной в файл
Ответ Создать тему
Опции темы

Текущее время: 04:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru