Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 20.12.2014
Сообщений: 2
1

Ненужные символы при записи в файл

20.12.2014, 19:54. Просмотров 630. Ответов 4
Метки нет (Все метки)

Добрый день! Столкнулся с такой проблемой: создаю в программе новый файл и пытаюсь записать туда строку. потом сразу вывожу то,что находится в этом файле после записи. При работе программы почему то в фал дописываются еще ненужные символы,а при выводе на экран только они и выводятся. Как мне избавиться от них?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <fstream>
#include <stdio.h>
using namespace std;
 
void main()
{
    setlocale(LC_ALL, "Russian");
    FILE *f;
    f = fopen("C:\\Users\\Admin\\Desktop\\Документы\\file2.txt", "a+");
    if (f == NULL)
    {
        perror("Невозможно открыть файл для чтения");
    }
    char a[1000];
    fputs("222", f);
    fgets(a,4,f);
    cout << a;
    fclose(f);
}
при этом в файле:222ННН, а в выводе на экран: ННН
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.12.2014, 19:54
Ответы с готовыми решениями:

Лишние символы при записи в файл
void Add_department::OnBnClickedOk() { char seps = &quot;:&quot;; char *token; char* file_name =...

Непонятные символы при записи в файл
Доброго времени суток. Вот снова прошу о помощи гуру программирования. Код еще не дописан, но...

В файл добавляются ненужные записи
Для того чтобы сохранить какие-то записи в файл я использую TStringList.SaveToFile(file), перед...

Символы при записи в файл
Добрый день уважаемые форумчане вот нужно было реализовать просмотр и добавление информации через...

4
Эксперт С++
3057 / 1399 / 421
Регистрация: 19.01.2009
Сообщений: 3,763
20.12.2014, 20:07 2
fedya525, a не инициализирован - там мусор. Перед вызвом fgets() нужно вызывать fseek() или rewind().
1
6913 / 5978 / 2709
Регистрация: 14.04.2014
Сообщений: 25,504
20.12.2014, 20:09 3
Перед считыванием нужно позиционироваться на начало файла. Или просто закрывай файл после записи и открывай повторно на чтение.
1
0 / 0 / 0
Регистрация: 20.12.2014
Сообщений: 2
20.12.2014, 20:25  [ТС] 4
тема с rewind помогла,спасибо. А можете по-подробнее пояснить,из-за чего это происходит? По логике: я туда передаю константную строку,а значить там кроме нее ничего не должно быть. После я только считываю из файла,но не меняю его. Почему тогда в нем кроме строки появляются другие символы? Я же их не добавлял туда.
0
6913 / 5978 / 2709
Регистрация: 14.04.2014
Сообщений: 25,504
20.12.2014, 21:05 5
Указатель стоит в конце файла, а все действия по чтению/записи - относительно него.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.12.2014, 21:05

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Отбросить ненужные символы при вводе
Здравствуйте! Задача. Введите строку &quot;characters&quot; стандартного входного устройства. Сохраните...

Лишние символы при записи в файл
Здравствуйте. Скажите пожалуйста, почему при сохранении значений в файл между строками, в которых...

Отбросить все ненужные символы при вводе с клавиатуры
Всех приветствую! Пытаюсь разобраться в нижеприведенном тривиальном коде - как бы игра: загадана...

Tesseract: лишние символы (шум) при записи в файл
Господа, помогите кто знает. #include &lt;fstream&gt; #include &lt;stdio.h&gt; #include &lt;allheaders.h&gt;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.