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

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

Войти
Регистрация
Восстановить пароль
 
evelolka
2 / 2 / 0
Регистрация: 25.10.2013
Сообщений: 108
#1

Запись в файл - C++

13.06.2014, 16:14. Просмотров 285. Ответов 3
Метки нет (Все метки)

подскажите где я косячнул при записи в файл


В общем суть такая косяк свой никак не найду .
При открытии файла всё прекрасно читается и заменяется ,но записывается 1 строка только и начинается поедание оперативки.
что то не то с записью вероятнее всего
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include <iostream>
#include <fstream>
#include <cstring>
 
int main()
{
    struct lines
    {
        char line[256];
        lines*next ;
    };
    lines* head = 0 ;
    lines* curr = 0 ;
    setlocale( LC_ALL,"Russian" ) ;
    char filename[100] , findline[256] , newline[256];
    std::cout << "Введите имя файла: " ;
    std::cin.getline( filename , 100 ) ;
    std::ifstream in( filename , std::ios::in ) ;
    curr = head ;
    while( !in.eof() )
    {
        if( head == 0 )
        {
            head = new lines ;
            curr = head ;
        }
        else
        {
            curr -> next = new lines ;
            curr = curr -> next ;
        }
           in.getline( curr->line , sizeof( lines ) );
        curr -> next = 0 ;
    } ;
    in.close() ;
    curr = head ;
    while( curr != 0 )
    {
        std::cout << curr -> line << std::endl ;
        curr = curr -> next ;
    }
    std::cout << "Введите искомую строку: " ;
    std::cin.getline( findline , 256 ) ;
    curr = head ;
    while( curr -> next != 0 )
    {
        if( ( strcmp( curr->line , findline ) == 0 ) && ( curr -> next != 0 ) )
        {
            std::cout << "Введите заменяемую строку: " ;
            std::cin.getline( newline , 265 ) ;
            strcpy( curr -> line , newline ) ;
        }
        curr = curr -> next ;
    }
    curr = head ;
    while( curr != 0 )
    {
        std::cout << curr -> line << std::endl ;
        curr = curr -> next ;
    }
    std::ofstream out( filename , std::ios::out ) ;
    curr = head ;
    while( curr != 0 )
    {
        out.write( curr -> line , sizeof(  lines ) ) ;
        curr = curr -> next ;
    }
    out.close() ;
    return 0 ;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.06.2014, 16:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Запись в файл (C++):

запись в файл. не создается файл - C++
#include &lt;graphics.h&gt; // vkljy4it' opisanie grafi4eskix fynkcij Ñ/Ñ++ Borland'ah #include&lt;stdio.h&gt; #include &lt;conio.h&gt; // opisanie...

Запись в файл - C++
#include &lt;string&gt; #include &lt;iostream&gt; #include &lt;fstream&gt; int main() { setlocale (LC_ALL, &quot;Russian&quot;); ofstream...

Запись в файл С++ - C++
Народ подскажите как сделать что бы прохождении теста при выборе ответа у меня эти ответы записывался в текстовый файл #include...

Запись в файл - C++
Подскажите, я ввожу в массив с клавиатуры текст, записываю его в файл, потом в этот же массив опять ввожу текст и записываю его в этот же...

Запись в файл - C++
Задача переписать из одного файла в другой слова, в перевернутом виде. например: 1 файл: привет как ты 2 файл: п к т р а ы и...

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

3
nmcf
5535 / 4845 / 1642
Регистрация: 14.04.2014
Сообщений: 19,657
13.06.2014, 19:43 #2
Почему ты читаешь и записываешь sizeof(lines), а не 256? Указатель для чего записывается?
0
evelolka
2 / 2 / 0
Регистрация: 25.10.2013
Сообщений: 108
13.06.2014, 20:51  [ТС] #3
Цитата Сообщение от nmcf Посмотреть сообщение
Почему ты читаешь и записываешь sizeof(lines), а не 256? Указатель для чего записывается?
а разница какая ? так и так одинаково должно получиться поидее то
0
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
13.06.2014, 23:38 #4
C++
1
2
3
4
5
...
in.getline( curr->line , sizeof( curr ->line ) );
...
out << curr -> line << std::endl;
...
Только почему сначала чтение из файла, а потом запись? Что читаем тогда?
И открытие файла для чтения всегда проверять нужно.
0
13.06.2014, 23:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.06.2014, 23:38
Привет! Вот еще темы с ответами:

Запись в файл - C++
Подскажите, пожалуйста. Мне нужно создать файл и записать в него значения y=5*k, k изменяется в цикле от 0 до 10. Как это сделать? Спасибо.

запись в файл - C++
как открыть файл для записи находящийся по определенному адресу в файловой системе

Запись в файл - C++
Здравствуйте. Такая вот проблема: Есть функция, вычисляющая на встроенном ассемблере уравнение. Значения должны браться из файла input.txt...

Запись в файл - C++
Собствено у меня в програме функция записи в файл реализована следующим образом std::string fileName; std::cout &lt;&lt; &quot;Введите слово: &quot;;...


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

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

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