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

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

Войти
Регистрация
Восстановить пароль
 
KellyDink
2 / 2 / 0
Регистрация: 04.01.2012
Сообщений: 133
Записей в блоге: 37
#1

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

15.10.2013, 22:22. Просмотров 287. Ответов 5
Метки нет (Все метки)

Добрый день,
я с С++ не очень дружу. подскажите пожалуйста почему у меня в файл записывается последний символ каждого файла 2 раза? когда я файлы открывала fopen - в конце каждого файла запись шла лишнего символа (в моем случае "я"). Повтор последнего символа уже лучше =D, но все-равно я не могу понять откуда он берется.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
char Y;
    ifstream in("D://1//2.txt", ios::in);
    ofstream out("D://1//out.txt", ios::out);
    ifstream in1("D://1//1.txt", ios::in);
while (in)
{
in >> Y;
out << Y;
 
}
while (in1)
{
in1 >> Y;
out << Y;
 
}
 
in1.close();
    in.close();
    out.close();
    _getch();
    return 0;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.10.2013, 22:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос запись в файл (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++
Что-то не то в функции write, вроде всё логично, но не выводит(подскажите ошибку #include &quot;stdafx.h&quot; #include &quot;stdafx.h&quot; #include...

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

Запись в файл - C++
Сформировать файл &quot;ЕXP.txt&quot;, содержащий сведения об экспорте товаров такого образца: наименование, страна, объем поставок и стоимость...

Запись в файл - C++
Вот программа: #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;stdlib.h&gt; #include &lt;locale.h&gt; int i; int fact (int...

Запись в файл - C++
Дана программа: #include &quot;stdafx.h&quot; #include &quot;iostream&quot; #include &lt;conio.h&gt; #include &lt;fstream&gt; using namespace std; char...

5
palva
2630 / 1857 / 268
Регистрация: 08.06.2007
Сообщений: 7,104
Записей в блоге: 4
15.10.2013, 22:34 #2
Попробуйте так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
while (1)
{
    in >> Y;
    if(in) out << Y;
    else break;
}
while (1)
{
    in1 >> Y;
    if(in1) out << Y;
    else break;
}
Добавлено через 3 минуты
Лишний символ появляется, потому что выход из цикла появляется в начале тела цикла, а условие его окончания возникает уже в процессе выполнения тела цикла. Файл кончился, попытка чтения не удалась, но символ Y в выходной файл все равно пишется.
0
KellyDink
2 / 2 / 0
Регистрация: 04.01.2012
Сообщений: 133
Записей в блоге: 37
15.10.2013, 23:19  [ТС] #3
Я тоже так думала, но я пробовала с do while , но результат остается прежним
0
palva
2630 / 1857 / 268
Регистрация: 08.06.2007
Сообщений: 7,104
Записей в блоге: 4
15.10.2013, 23:24 #4
Цитата Сообщение от KellyDink Посмотреть сообщение
но я пробовала с do while , но результат остается прежним
Конечно останется прежним. Условие выхода возникает в середине тела цикла. И нужно сразу выходить из цикла, а не выводить символ. Цикл еще можно так короче записать. Но это, наверно, менее понятно.
C++
1
while (in >> Y) out << Y;
1
KellyDink
2 / 2 / 0
Регистрация: 04.01.2012
Сообщений: 133
Записей в блоге: 37
16.10.2013, 06:15  [ТС] #5
менее понятно =) но безумно круто!
мне так нравится, когда код оказываеццо можно упрощать до таких вот строчек =)
спасибо!
0
palva
2630 / 1857 / 268
Регистрация: 08.06.2007
Сообщений: 7,104
Записей в блоге: 4
16.10.2013, 09:46 #6
Цитата Сообщение от palva Посмотреть сообщение
выход из цикла появляется в начале тела цикла
Здесь у меня опечатка. Имелось в виду "проверяется в начале тела цикла".
0
16.10.2013, 09:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.10.2013, 09:46
Привет! Вот еще темы с ответами:

Запись в файл - C++
У меня естьпрограмма которая загружает окола ста dll. каждая dll пишет на диск около 1 килобайта в тектовые файлы в определенный интервал...

запись в файл - C++
подскажите пожалуйста при записе текста в файл как нужно изменить кодировку, а то при записи русского текста в файл .txt записывает...

Запись в файл - C++
Добрый вечер, у меня в коде программы где то ошибка которую не могу найти. #include &lt;iostream&gt; #include &lt;fstream&gt; #include...

Запись в файл - C++
Мне нужно, чтобы данная программа вывела ответ в екселевский файл. Но почему то не выходит. Файл создал прям на диске &quot;С&quot; с названием...


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

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

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