Форум программистов, компьютерный форум 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; подробнее

Показать сообщение отдельно
alsav22
5413 / 4809 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
30.07.2012, 08:23     Дополнение char строк пробелами при записи их в файл
Вы зря открываете файл для бинарного чтения и записи. Лучше так сделать:
Код
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
#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");
    if(!out){cout << "Unable to open database file.\n"; return 1;}
 
    out.write(fname, strlen(fname));
    out.put('\n');
    out.write(lname, strlen(lname));
    out.put('\n');
    out.write(number, strlen(number));
    out.put('\n');
    out.close();
 
    ifstream in ("testdb.txt");
    if(!in){cout << "Unable to open database file.\n"; return 1;}
 
  
    in.getline(fname, sizeof(fname));
    in.getline(lname, sizeof(lname));
    in.getline(number, sizeof(number));
    
    cout  << fname << " " << lname << " " << number << "\n";
 
    in.close();
 
    system("PAUSE");
    return 0;
}


Добавлено через 26 минут
Запись в файл можно проще записать:
C++
1
2
3
4
5
6
out << fname;
out.put('\n');
out << lname;
out.put('\n');
out << number;
out.put('\n');
Цитата Сообщение от kia001 Посмотреть сообщение
переменные дополнялись нужным числом пробелов?
Пробелы не помогут. getline() для окончанчания чтения нужен символ новой строки ('\n'), или конец файла, или чтобы колличество считанных символов стало на 1 больше, чем задано в параметре (тогда ошибка). Но сам символ новой строки она не читает (имеется ввиду, что не помещает туда, куда считывает) , из потока извлекает и всё. В массивах char его не будет. Поэтому, при записи в файл, строки нужно дополнять символом '\n', чтобы потом getline() нормально их считывала.
 
Текущее время: 01:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru