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

Считать из файла только числа - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Помогите написать программу для решения слау методом Гаусса http://www.cyberforum.ru/cpp-beginners/thread569104.html
Осталось как обычно пару дней до сдачи курсовой, а она еще не готова! Помогите пожалуйста. Вот код, который чуть-чуть работает Главная проблема в том, чтобы привести систему к диагональному виду без дробных коэффициентов, там возможно 0/0.... линейную комбинацию осуществить нужно верно. Однако нужно произвести сортировку так, чтобы на диагонали при каждом шаге не было "0". И сложно с обратным...
C++ Подсчитать сколько раз элементы массива меняют знак Дан массив ненулевых целых чисел. Определить сколько раз элементы массива, при просмотре от его начала, меняют знак. #include <iostream> #include <ctime> using namespace std; int main () { setlocale (LC_CTYPE, "Russian"); srand(time(NULL)); http://www.cyberforum.ru/cpp-beginners/thread569093.html
C++ подскажите, как можно сохранить переменную, вводимую во время работы программы после ее закрытия
допустим есть переменная a ... int a; cin>>a; ... при повторном открытии программы переменная нигде не сохранится. как ее сохранить? заранее спасибо.
Составные типы данных в процедурах и функциях C++
Кто может помогите решить задачу: Описать процедуру RemoveRows(A, M, N, K1, K2), удаляющую из вещественной матрицы A размера M × N строки с номерами от K1 до K2 включительно (предполагается, что 1 < K1 ≤ K2). Если K1 > M, то матрица не изменяется; если K2 > M, то удаляются строки матрицы с номерами от K1 до M. Двумерный массив A и числа M, N являются входными и выходными параметрами. Используя...
C++ домино http://www.cyberforum.ru/cpp-beginners/thread569027.html
нужен исходик игры домино на с++ builder в нете нашол ток на делфи . помогите программа оч надо
C++ Найти самое длинное слово входной файл содержит некоторый текст,состоящий из слов, разделенных одним пробелом. составить программный код, в котором анализируются содержащиеся там слова, и выдаётся самое длинное слово. Посмогите пожалуйста, заранее спасибо. подробнее

Показать сообщение отдельно
cetrael
 Аватар для cetrael
60 / 5 / 3
Регистрация: 01.10.2011
Сообщений: 93
09.05.2012, 03:30     Считать из файла только числа
Сделал класс, который загружает текстовый файл в массив(целочисленный) и имеет функцию удаления числа из файла.
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
71
72
73
74
75
76
77
78
79
80
81
#include <iostream>
#include <fstream>
using namespace std;
 
class Txt 
{
private:
    int *arr;//указатель на целочисленный массив
    ifstream ifile;//входной поток
    unsigned int count;//счетчик количества чисел в файле
public:
    Txt(char* filename)
    {
        int buf = 0;
        ifile.open(filename, ios::in);
        ifile.seekg(-1, ios::end);
        int len = ifile.tellg();
        ifile.seekg(0, ios::beg);
        arr = new int[len / 2 + 1];
        count = 0;
        while(!ifile.eof() || ifile.bad())
        {
 
            ifile >> arr[count];
            count++;
        }
    }
    void See (void)
    {
        if(!count)
            cout << "No array!" << endl;
        else
        {
            for(int i = 0; i < count; i++)
                cout << arr[i] << " ";
        }
    }
    bool Del (int n)
    {
        while(Check(n))
        {
            for(int i = 0; i < count; i++)
            {
                if(arr[i] == n)
                {
                    for(i; i + 1 < count; i++)
                    {
                        arr[i] = arr[i+1];
                    }
                    count--;
                    if(count == 0) {cout << "File is empty" << endl; return 0;}
                    int *temp = new int[count];
                    for(int i = 0; i < count; i++)
                        temp[i] = arr[i];
                    delete [] arr;
                    arr = new int[count];
                    for(int i = 0; i < count; i++)
                        arr[i] = temp[i];
                    delete [] temp;
                }
            }
        }
    }
    bool Check (int n)
    {
        for(int i = 0; i < count; i++)
            if(arr[i] == n)
                return true;
        return false;
    }
};
 
int main () 
{
    Txt txt("asd.txt");
    txt.See();
    cout << endl;
    txt.Del(1);
    txt.See();
    return 0;
}
Во-первых, как сделать, чтобы считывались только числа, потому что, если добавить в файл пробелов - программа сломается :P
Во-вторых, знающие люди, оцените функцию удаления.
В-третьих, нужна критика по коду.
P.S. забыл добавить, чтобы после удаление все сохранило в файл(но это не проблема).
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 21:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru