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

Дополнение char строк пробелами при записи их в файл - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Радио плеер http://www.cyberforum.ru/cpp-beginners/thread630531.html
Решил написать кросс платформенный радио плеер (потоковый Icecast2). Куда копать? И с чего лучше начать?
C++ Выделение и освобождение памяти в c++ Не давно наткнулся на такую замечательность : system("PAUSE");//1 раз int *p = new int; // память system("PAUSE");//2 раз delete p;// нет память Запускаю программу,смотрю скока мемори она хавает 226(примерно) http://www.cyberforum.ru/cpp-beginners/thread630530.html
Ошибка в подсчете количества инверсий C++
Здравствуйте, помогите разобраться с подсчетом количества инверсий, в случае повторяющихся элементов. Количество элементов в массиве 65537, максимальное значение 10^9, элементы не отрицательные, время 0.5 с. Гуглил, нагуглил три алгоритма (http://cppalgo.blogspot.com/2011/02/blog-post_07.html), но там случай различных элементов. Написал первый алгоритм #include <iostream> #include...
C++ Контейнерные классы
Есть некоторое сомнения, помоготи пожалуйста: Если у меня есть например такой код: vector<int> * pmyvec; pmyvec->push_back(3); pmyvec->push_back(4); delete pmyvec; Есть ли в этом коде утечка памяти?
C++ Обьяснить программу (Принципи ее работы) http://www.cyberforum.ru/cpp-beginners/thread630498.html
Здравствуйте! Есть программа: #include <stdio.h> #include <memory.h> struct arrInt { char * data; int length;
C++ Как достать указатель на объект из контейнера set Имеется вот такой код #include "stdafx.h" #include <string> #include <iostream> #include <fstream> #include <set> #include <conio.h> using namespace std; подробнее

Показать сообщение отдельно
kia001
0 / 0 / 0
Регистрация: 24.07.2012
Сообщений: 9
30.07.2012, 06:11     Дополнение char строк пробелами при записи их в файл
Пытаюсь написать простенькую прогу, создающую базу данных имен и номеров сотрудников в файле. Столкнулся со следующей проблемой: при записи строк, имеющих длину меньше длины массива, в файл они дополняются мусором - примерно так: Ivan ММММММММММIvanov ММММММММ12345 МММММММММ.
При попытке их последующего получения из файла и записи в переменные они также имеют мусорные символы.

Собственно вопрос - как этого можно избежать?

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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
 
int main()
{
    int num = 0;
    
    char fname[15];
    char lname[15];
    char number[15];
 
    cout << "Enter employee first name: ";
    cin.getline(fname, 15);
 
    cout << "Enter employee last name: ";
    cin.getline(lname, 15);
 
    cout << "Enter employee phone number: ";
    cin.getline(number, 15);
 
    cout  << fname << " " << lname << " " << number << "\n";
 
    ofstream out("testdb.txt", ios::out | ios::binary);
    if(!out){cout << "Unable to open database file.\n"; return 1;}
 
    out.seekp((50*num), ios::beg);
    out.write(fname, 15);
    out.seekp((50*num)+15, ios::beg);
    out.write(lname, 15);
    out.seekp((50*num)+30, ios::beg);
    out.write(number, 15);
 
    out.close();
 
    ifstream in ("testdb.txt", ios::in | ios::binary);
    if(!in){cout << "Unable to open database file.\n"; return 1;}
 
    in.seekg((50*num), ios::beg);
    in.getline(fname, sizeof fname);
    in.seekg((50*num)+15, ios::beg);
    in.getline(lname, sizeof lname);
    in.seekg((50*num)+30, ios::beg);
    in.getline(number, sizeof lname);
    
    cout  << fname << " " << lname << " " << number << "\n";
 
    in.close();
 
    system("PAUSE");
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru