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

Удаление элемента массива string - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Переписать слова исходной строки имеющие длину первого слова в новую строку http://www.cyberforum.ru/cpp-beginners/thread1306895.html
Помогите решить задачу студенту. Идет сессия, решается оценка. Дана строка. Содержащая слова. Разделенные одним или несколькими разделительными символами ( пробелами. Табуляторами) в начале строки и в конце строки также могут находиться разделительные символы. Сформировать новую строку . В которой поместить слова исходной строки, имеющие ту же длину. Что и первое слово, разделенные одним...
C++ Структура "Оштрафованный ГАИ": поиск по критерию Здравствуйте, помогите решить задачу на С++: Сотрудник налоговой инспекции оштрафовал за день шесть человек. Вывести на экран фамилии, номера машин, сумму штрафа для водителей, оштрафованных больше чем на 10т. и общую сумму штрафов. Исходные данные ввести с клавиатуры. http://www.cyberforum.ru/cpp-beginners/thread1306872.html
C++ Объявление и инициализация переменных
помогите исправить, пожалуйста.... Решение: #include <iostream.h> #include <math.h> double GetY (unsigned short int Number); double CalculateX (double X); void Print Result (double Y, double F);
Задача 7 главы 7 из книги Р. Лафоре. Строки C++
Добрый день! Недавно начал изучать С++ по, наверное, уже всем поднадоевшему, учебнику Роберта Лафоре. На данный момент изучаю главу с массивами и строками. Меня привела в тупик задача 7 главы 7: Одним из недостатков C++ является отсутствие для бизнес-программ встроенного типа для денежных значений, такого, как $173 698 001.32. Такой денежный тип должен иметь возможность для хранения числа с...
C++ Расстояние между двумя точками, double или int? http://www.cyberforum.ru/cpp-beginners/thread1306841.html
#include <iostream> #include <conio.h> #include <cmath> using namespace std; int distance(int, int, int, int); int main() { int x1 = 4;
C++ Упорядочить заданную матрицу по возрастанию элементов в каждом столбце Дана матрица С размером m*n. Упорядочить эту матрицу по возрастанию элементов в каждом столбце. помогите пожалуйста срочнооо! подробнее

Показать сообщение отдельно
Jinny
0 / 0 / 0
Регистрация: 20.05.2013
Сообщений: 9
21.11.2014, 15:24     Удаление элемента массива string
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
#include "stdafx.h"
#include <fstream> //чтение, запись файла
#include <iostream>
//#include <windows.h> //добавление кириллицы
#include <string> 
#include <stdlib.h>
#include <vector>
#include <sstream>
#include <locale>//поиск
using namespace std;
 
string fam[50];
string im[50];
string otc[50];
string god[50];
string kodp[50];
string kodd[50];
string kodpS[50];
string koddS[50];
 
//BOOL WINAPI SetConsoleOutputCP (  __in UINT wCodePageID); 
//BOOL WINAPI SetConsoleCP (  __in UINT wCodePageID);
 
 
void ydalenie()
{
cout << "Введите фамилию сотрудника, чью запись хотите удалить:  ";
ofstream fsotrudniki("Сотрудники.txt"); //открываем файл "Сотрудники"
    string fam1;
    cin >> fam1;
    char *tmp = new char[fam1.size() + 1];
    OemToCharA(fam1.c_str(), tmp); 
    fam1 = tmp;
    for (int j=0; j<=i; j++)
    {
        if (fam[j] == fam1)
        {
            for (int k=j; k<=i-1; ++k)
            {
            fam[k]=fam[k-1];
            im[k]=im[k-1];
            otc[k]=otc[k-1];
            god[k]=god[k-1];
            kodpS[k]=kodpS[k-1];
            koddS[k]=koddS[k-1];
            }
            i--;
        }
    }
    for (int j=0; j<i; j++)
    {
        //setlocale(LC_ALL, "rus");
        //SetConsoleCP(1251);// установка кодовой страницы win-cp 1251 в поток ввода
        //SetConsoleOutputCP(1251);//отображение кириллицы
        fsotrudniki << fam[j]<<" "<<im[j]<<" "<<otc[j]<<" "<<god[j]<<" "<<kodpS[j]<<" "<<koddS[j]<<endl;
        cout <<fam[j]<<" "<<im[j]<<" "<<otc[j]<<" "<<god[j]<<" "<<kodpS[j]<<" "<<koddS[j]<<endl;
 
    }
    fsotrudniki.close();//закрываем файл "Сотрудники"
    system("pause");
}
Чтение из файла осуществляет, даже (фамилия пишется в кириллице) правильно присваивает значение фамилии переменной fam1, а выводит чушь какую-то( думала, проблемы в кодировке, уже все перепробовала и все равно...((
переменная i - глобальная переменная, ее значение зависит от количества строк в файле.
fam[] - тоже глобальный массив, считывает перед загрузкой фамилию из файла ( там выполнено все правильно, другие функции работают)

Добавлено через 5 минут
Вот вариант поиска по той же фамилии.. все идеально работает:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
void PoiskFam()
{
    cout << "Введите фамилию сотрудника:  ";
    string fam1;
    cin >> fam1;
    char *tmp = new char[fam1.size() + 1];
    OemToCharA(fam1.c_str(), tmp); 
    fam1 = tmp;
    for (int j=0; j<=i; j++)
    {
        if (fam[j] == fam1)
        {
            //Вывод ячеек таблицы "Сотрудники", удовлетворяющих поиску
            cout <<fam[j]<<" "<<im[j]<<" "<<otc[j]<<" "<<god[j]<<" "<<kodpS[j]<<" "<<koddS[j]<<endl;
        }
        else
        {
            //cout << "Такой фамилии нет в базе, либо ввод осуществлен некорректно!"<<endl;
        }
    }
    system("pause");
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 11:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru