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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Andruchka
0 / 0 / 0
Регистрация: 23.02.2011
Сообщений: 26
#1

Работа с файлами - C++

25.12.2011, 00:06. Просмотров 581. Ответов 3
Метки нет (Все метки)

написал класс fail для чтения из файла

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class fail
{
    public:
        fail( int = 0, string = "" );
 
        void setNom( int nomValue );
        void setStr( string strValue );
 
        int getNom( void ) const;
        string getStr( void ) const;
 
    private:
        int nom;
        string str;
 
};
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
fail::fail( int nomValue, string strValue )
{
    setNom( nomValue );
    setStr( strValue ); 
}
 
void fail::setNom( int nomIcqValue )
{
    nom= nomIcqValue;
}
 
void fail::setStr( string strValue )
{
    str = strValue;
}
 
int fail::getNom( void ) const
{
    return nom;
}
 
string fail::getStr( void ) const
{
    return str;
}
функция main
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int main( void )
{
    SetConsoleCP( 1251 );
    SetConsoleOutputCP( 1251 );
 
    fail data;
 
    newFile( );
    read( );
 
    system( "pause" );
    return 0;
}
функция newFail
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void newFile( void )
{
    int numberValue = 0;
    string strValue = "";
    fail data;
 
    ofstream noomOut( "nom.txt", ios::binary );
 
    while( cin >> numberValue >> strValue  )
    {
        data.setNom( numberValue );
        data.setStr( strValue );
 
        noomOut.write( reinterpret_cast< const char * >( &data ), sizeof( fail )  );
    }
 
    cout << "\nВвод закончен" << endl;
    noomOut.close();
}
функция read
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void read( void )
{
    fail data;
    ifstream noomInp( "nom.txt", ios::in );
 
    if( !noomInp )
        exit( 2 );
 
    noomInp.read( reinterpret_cast< char * >( &data ), sizeof( fail ) );
    
    while( !noomInp.eof() )
    {
        cout << data.getNom() << " " << data.getStr() << endl;
        noomInp.read( reinterpret_cast< char * >( &data ), sizeof( fail ) );
    }
 
    noomInp.close();
}
ошибка в следующем( см. вложение )

и еще вопрос когда записываешь в файл спомощью операции read он в файл записывает в двоичной виде, можно ли записывать его через read, но что бы после записи в файл его можно было прочесть обычному пользователю? Просто создавать отдельный файл?
0
Миниатюры
Работа с файлами  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2011, 00:06
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Работа с файлами (C++):

Работа с файлами в С++ - C++
Дан текстовый файл. Нужно напечатать все строки, длина которых равна заданному числу.

Работа с файлами - C++
Помогите пожалуйста, что не правильно,,,не выводит результат в файл #include&lt;iostream.h&gt;; #include&lt;fstream.h&gt;; #include&lt;iomanip&gt;; ...

Работа с файлами - C++
Задача программы такова - пользователь вводит строку адреса , например C:\blablabla и программа считывает все размеры файлов хранящихся в...

С++ Работа с файлами - C++
Напишите программу, которая принимает на вход четыре параметра: имя входного файла, имя выходного файла, два слова a и b. Программа должна...

Работа с файлами C++ - C++
Как выводить данные через цикл while (!file.eof()) ? (можно просто пример кода )

Работа с файлами!!! - C++
помогите решить этот бред, а то с инста попрут 1)описать функцию triangle, формирующую текстовой файл из 9 строк, в первой из...

3
Andruchka
0 / 0 / 0
Регистрация: 23.02.2011
Сообщений: 26
25.12.2011, 11:45  [ТС] #2
что ни кто не знает в чем проблема?
0
Nick Alte
Эксперт С++
1639 / 1011 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
25.12.2011, 12:06 #3
Все знают, но лень отвечать по такой ерунде. string нельзя писать в файл напрямую, это не POD-тип. Надо писать по отдельности число и содержимое буфера строки, возвращаемое функцией c_str. Читать - в промежуточный буфер char и потом порождать из того буфера string, ну или присваивать там... Попытки писать-читать string как обычный кусок памяти напоминают попытку пересадки селезёнки ножом и вилкой с использованием вместо донорского органа еловой шишки.
0
Andruchka
0 / 0 / 0
Регистрация: 23.02.2011
Сообщений: 26
25.12.2011, 12:18  [ТС] #4
в книге через string написано, и у них вроде как все работает просто
0
25.12.2011, 12:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.12.2011, 12:18
Привет! Вот еще темы с ответами:

Работа с файлами - C++
Добрый день! Помогите, пожалуйста с задачей -- я в С++ совсем чайник. Просто хотя бы подскажите каким методом делать или пример...

Работа с файлами - C++
написать программу на языке программирования С++ для выполнения задания. Обработку массивов выполнять с помощью функций;

Работа с файлами - C++
Здравствуйте. Недавно начал программировать на c++ (знаю php, поэтому было легко). И дошло до того, что нужно работать с файлами. Поначалу...

Работа с файлами C++ - C++
Условие: Скопировать из файла F1 в файл F2 все строки, в которых содержится два одинаковых слова. Определить номер слова, в котором больше...


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

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

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