Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.03.2017, 01:40   #31
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Сообщение от ura_111 Посмотреть сообщение
размером.
А что с ним?

7wlCtVx.png
jpg_vs_png.png
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 15.03.2017, 01:50   #32
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Я не понял...
Зато я осознал, что у тебя в коде нужно дописать всего лишь 1-н пункт,
а в моём коде надо писать уже целых 3-ри пункта (да и ещё не понятно такому ли тебя учили/давали методические рекомендации).
Сделать можно по-разному, но мы же помним, что делать надо так как учили, чтобы у преподавателя было меньше вопросов.

___________________________________ __________________________

Всё, я принял решение о смене стратегии.

Теперь будем делать не мой код (его можешь удалить), а просто доделаем твой и всё.
Что там тебе осталось?
Ты говорил, что "...сохранить и вывести я это у себя сделал и добавление записи добавил, а про удаление сказали что нужен динамический массив"
Короче осталось одно удаление из файла (через динамический массив). Я думаю, что это не сложно...
___________________________________ ___________________

Хорошо что этот вопрос прояснился.
Итак, первое что меня интересует это сам файл. Покажи его (т.е. запусти свою первую программу; ну введи пару надписей, чтобы в файл записало; потом закрой программу). Покажи, что в файле.

p.s.: я заметил, что у тебя куча раз открывается файл, но ни разу не закрывается... Ну вот сопоставь простенький пример с тем, что тебя учили:

13.jpg

но это может быть и не ошибка. Может у тебя открыт файл на всё время работы программы, а когда программа закрывается, то и файл автоматически закрывается (хотя я такого нигде не встречал).

Последний раз редактировалось ura_111; 15.03.2017 в 17:26.
ura_111 вне форума Ответить с цитированием
Старый 15.03.2017, 09:54   #33
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Сообщение от ura_111 Посмотреть сообщение
Может у тебя открыт файл на всё время работы программы, а когда программа закрывается, то и файл автоматически закрывается (хотя я такого нигде не встречал).
А еще в С++ есть RAII.
https://ru.wikipedia.org/wiki/%D0%9F...86%D0%B8%D1%8F
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 15.03.2017, 17:22   #34
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Я вроде забацал (для твоего кода. Протестируй.):
Код:
		case 5:
		{
				  string str1;		
				  string str2;
				  cout << "Введите строку на удаление: ";
				  cin >> str2;
				  int N = 0;
				  int j = -1;
				  {
					  ifstream fout("text1.txt");
					  while (!fout.eof())
					  {		
						  getline(fout, str1);
						  if (str1 == str2)
						  {
							  j = N;
						  }
						  N++;					  
					  }					
				  }				  		
				
				  if (j != -1)
				  {
					  int *a = new int[N];
					  int k = 0;
					  ifstream fout("text1.txt");
					  while (!fout.eof())
					  {
						  getline(fout, str1);
						  if (str1 != str2)
						  {
							  a[k] = atoi(str1.c_str());
							  k++;
						  }
					  }
					  if (j != -1)
					  {
						  ofstream fout("text1.txt");
						  int n = 0;
						  while (n < k - 1)
						  {
							  fout << a[n] << endl;
							  n++;
						  }
					  }
					  delete[] a;
					  cout << endl;
				  }	
				  else
				  {
					  cout << "В файле нет такой записи!" << endl;
				  }
				  break;
		}
13.jpg

Последний раз редактировалось ura_111; 15.03.2017 в 17:30.
ura_111 вне форума Ответить с цитированием
Старый 15.03.2017, 23:59   #35
Andrey0072
Пользователь
 
Регистрация: 12.03.2017
Сообщений: 29
По умолчанию

Удаление что ты написал не работает , после того как удалил строку, в текстовом файле ничего нету кроме цифр :
2
0
0
0
0
Но если как у тебя на картинке просто число удалять без букв тогда работает.

Последний раз редактировалось Andrey0072; 16.03.2017 в 00:15.
Andrey0072 вне форума Ответить с цитированием
Старый 16.03.2017, 00:24   #36
Andrey0072
Пользователь
 
Регистрация: 12.03.2017
Сообщений: 29
По умолчанию

Ответ на вопрос:
cin>>a>>c>>x>>n;
ofstream fout("text1.txt");
fout << z << endl;
fout << a << endl;
fout << c << endl;
fout << x << endl;
fout << n << endl;
Это означает ввод записей и потом сохранение записей в текстовый файл.
Andrey0072 вне форума Ответить с цитированием
Старый 16.03.2017, 00:33   #37
Andrey0072
Пользователь
 
Регистрация: 12.03.2017
Сообщений: 29
По умолчанию

И изначально я вообще не знал что можна назвать пункт так "Сохранить БД в текстовый файл ".
А на счет fout.close(); и fout.open(); мне говорили их заменяет такой вид ofstream fout("text1.txt"); тип автоматически открывает и закрывает.

Последний раз редактировалось Andrey0072; 16.03.2017 в 00:41.
Andrey0072 вне форума Ответить с цитированием
Старый 16.03.2017, 00:48   #38
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Я ориентировался чисто на цифры.
Покажи пример строки и запроса на удаление.
ura_111 вне форума Ответить с цитированием
Старый 16.03.2017, 00:55   #39
Andrey0072
Пользователь
 
Регистрация: 12.03.2017
Сообщений: 29
По умолчанию

Пример строки из запроса на удаление: Вода:11.12

Последний раз редактировалось Andrey0072; 16.03.2017 в 01:00.
Andrey0072 вне форума Ответить с цитированием
Старый 16.03.2017, 01:16   #40
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Код:
		case 5:
		{
				  string str1;
				  string str2;
				  cout << "Введите строку на удаление: ";
				  cin >> str2;
				  int N = 0;
				  int j = -1;
				  {
					  ifstream fout("text1.txt");
					  while (!fout.eof())
					  {
						  getline(fout, str1);
						  if (str1 == str2)
						  {
							  j = N;
						  }
						  N++;
					  }
				  }

				  if (j != -1)
				  {
					  string *a = new string[N];
					  int k = 0;
					  ifstream fout("text1.txt");
					  while (!fout.eof())
					  {
						  getline(fout, str1);
						  if (str1 != str2)
						  {
							  a[k] = str1;
							  k++;
						  }
					  }
					  if (j != -1)
					  {
						  ofstream fout("text1.txt");
						  int n = 0;
						  while (n < k - 1)
						  {
							  fout << a[n] << endl;
							  n++;
						  }
					  }
					  delete[] a;
					  cout << endl;
					  cout << "Удалено успешно!" << endl;
				  }
				  else
				  {
					  cout << "В файле нет такой записи!" << endl;
				  }
				  break;
		}
ura_111 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Курсовая работа Evgesha1222 Фриланс 3 20.06.2013 14:12
Курсовая работа по БД Suslik963 Фриланс 6 23.05.2013 11:55
Курсовая работа(( Юрико Помощь студентам 4 27.12.2012 17:09
курсовая работа по с# сишарп Фриланс 1 05.06.2012 23:15
Курсовая работа! ...Dls... Паскаль, Turbo Pascal, PascalABC.NET 0 26.12.2008 12:42