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

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

Войти
Регистрация
Восстановить пароль
 
fuzzytoozy
8 / 8 / 1
Регистрация: 23.11.2012
Сообщений: 94
#1

не корректный вывод из файла - C++

05.02.2013, 05:21. Просмотров 323. Ответов 6
Метки нет (Все метки)

Здравствуйте! Такая проблема: запрашиваю в цикле ввод данных, введенные данные заношу в файл data.txt. Далее пытаюсь извлечь данные из файла и вывести их на экран. Последние введенные данные выводятся 2 раза, не понимаю почему. Подскажите пожалуйста.
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
//---------------------------------------------------------------------------
 
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
 
//---------------------------------------------------------------------------
 
int main(int argc, char* argv[])
{
  ifstream if1;
  ofstream of1("data.txt");;
  unsigned long num;
  char ans = 'y';
  string s1,s2;
 
  while( ans == 'y' )
  {
   cout << "\nEnter employer's name: ";
   cin >> s1;
   cout << "\nEnter employer's surname: ";
   cin >> s2;
   cout << "\nEnter employer's number: ";
   cin >> num;
   of1 << s1 << ' ' << s2 << ' ' << num << ' ';
 
 
   cerr << "\nContinue?(Y/N): ";
   cin >> ans;
  }
 
  of1.close();
  if1.open("data.txt");
  while ( !if1.eof() )
  {
   if1 >> s1 >> s2 >> num ;
 
   cout << "\nEmployer's name: " << s1;
   cout << "\nEmployer's surname: " << s2;
   cout << "\nEmployer's number: " << num << endl;
  }
 
   system("PAUSE");
 
        return 0;
}
//---------------------------------------------------------------------------
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.02.2013, 05:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос не корректный вывод из файла (C++):

Не корректный вывод - C++
Всем привет. Столкнулся с такой проблемой, что при пробеге цикла первый раз пробегает впустую без возможности ввода, а дальше всё работает...

Не корректный вывод данных - C++
#include &lt;iostream&gt; using namespace std; int main() { setlocale( LC_ALL, &quot;Russian&quot; );

Корректный вывод результата - C++
Здравствуйте, нужна помощь в корректном(красивый, в данном случае) выводе результата на экран. Написал алгоритм Дейкстры #include...

Корректный вывод русского алфавита - C++
Народ, подскажите, как решить проблему. Ввожу данные с клавиатуры, а при их выводе русским языком уже не пишет: #include &quot;stdafx.h&quot; ...

Не совсем корректный вывод при сортировке - C++
В скриншоте видно что у меня с файла выводит имя цветка, цвет, количество цветов(этот параметр выводит как текстовое значение, хотя в файле...

Создать программу, создающую корректный HTML-файл с форматированием, содержащий весь текст из файла - C++
Здраствуйте. Задание: Имеется два входных файла – файл_с_текстом и файл_словаря. Файл_с_текстом содержит текст в виде...

6
dalay_lama
77 / 77 / 16
Регистрация: 22.09.2012
Сообщений: 481
05.02.2013, 06:53 #2
Цитата Сообщение от fuzzytoozy Посмотреть сообщение
of1 << s1 << ' ' << s2 << ' ' << num << ' ';
Здесь убери последний пробел после num. У тебя цикл ввода из текстового файла в переменные проходит дважды потому как на записи num он не заканчивается, там ещё пробел остаётся, он цикл второй раз и прогоняет.
1
fuzzytoozy
8 / 8 / 1
Регистрация: 23.11.2012
Сообщений: 94
05.02.2013, 11:20  [ТС] #3
Нет, я пробовал убирать пробел. И ничего это не меняет, записывается фаил корректно, а вот почему он 2 раза выводит последний введенный - непонятно....
0
Somebody
2791 / 1602 / 147
Регистрация: 03.12.2007
Сообщений: 4,197
Завершенные тесты: 1
05.02.2013, 11:48 #4
eof() будет true не когда текущая позиция в конце файла, а когда уже была неудачная попытка чтения, так что эту проверку надо делать после чтения.
0
fuzzytoozy
8 / 8 / 1
Регистрация: 23.11.2012
Сообщений: 94
05.02.2013, 14:33  [ТС] #5
но ведь неудачная попытка чтения должна возникнуть в конце файла, с чего бы ей возникнуть в другой момент?

Добавлено через 50 секунд
как зациклить то вывод из файле чтобы не выводились 2 раза последние введенные данные, подскажите пжлст =)

Добавлено через 1 час 45 минут
ну помогите вырваться из лап быдлокодинга
0
SatanaXIII
Супер-модератор
Эксперт С++
5616 / 2651 / 246
Регистрация: 01.11.2011
Сообщений: 6,533
Завершенные тесты: 1
05.02.2013, 15:35 #6
Цитата Сообщение от fuzzytoozy Посмотреть сообщение
ну помогите вырваться из лап быдлокодинга
Это не ко мне.
Решение вот, а чтобы вырваться курите ответ skorik-1992.
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
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
 
//---------------------------------------------------------------------------
 
int main(int argc, char* argv[])
{
  ifstream if1;
  ofstream of1("data.txt");;
  unsigned long num;
  char ans = 'y';
  string s1,s2;
 
  while( ans == 'y' )
  {
   of1 << ' ';
   cout << "\nEnter employer's name: ";
   cin >> s1;
   cout << "\nEnter employer's surname: ";
   cin >> s2;
   cout << "\nEnter employer's number: ";
   cin >> num;
   of1 << s1 << ' ' << s2 << ' ' << num;
 
 
   cerr << "\nContinue?(Y/N): ";
   cin >> ans;
  }
 
  of1.close();
  if1.open("data.txt");
  while ( !if1.eof() )
  {
   if1 >> s1 >> s2 >> num ;
   cout << "\nEmployer's name: " << s1;
   cout << "\nEmployer's surname: " << s2;
   cout << "\nEmployer's number: " << num << endl;
  }
 
   system("PAUSE");
 
        return 0;
}
1
Somebody
2791 / 1602 / 147
Регистрация: 03.12.2007
Сообщений: 4,197
Завершенные тесты: 1
05.02.2013, 16:04 #7
C++
1
2
3
if1 >> s1 >> s2 >> num;
if (!ifs.good())
  break;
0
05.02.2013, 16:04
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.02.2013, 16:04
Привет! Вот еще темы с ответами:

Корректный выход - C++
Доброго времени суток! Пытаюсь разобраться с fork(), а точнее с корректным выходом из fork'нутого процесса. Есть стандартный код работы с...

Корректный ввод с cin - C++
Пусть в программе есть оператор cin &gt;&gt; n, где n типа int, а пользователь вводит набор символов Как отследить это, не выдавая ошибку, и не...

Корректный код под C++ - C++
Господамы, недавно начал изучать C++ И в одном из задачников столкнулся со следующим заданием, необходимо написать старую запоминалку про...

Корректный ввод структуры и ее обработка - C++
Добрый день. Есть вопрос, как мне правильно ввести структуру, что бы потом корректно с ней работать. Задание:Нужно составить...


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

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

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