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

Подскажите, как сделать проверку - C++

Восстановить пароль Регистрация
 
Александр918
0 / 0 / 0
Регистрация: 14.02.2012
Сообщений: 4
04.11.2012, 22:18     Подскажите, как сделать проверку #1
C++ (Qt)
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#include "stdafx.h" 
#include <iomanip>
#include <iostream> 
#include <fstream> 
#include <stdlib.h> 
#include <conio.h> 
#include <windows.h> 
#include <locale.h> 
using namespace std; 
int main() 
{ 
int i, s1, s2, z, k;   
char F1[255]; 
setlocale(LC_ALL, "Russian"); 
fstream file; 
while(true) { 
    cout<<"Введите имя файла: ";
    cin.getline(F1, sizeof(F1));
    file.open(F1);
    if (!file.is_open()) {
        cout<<"Фаил "<<F1<<" не открывается "<<endl;
        cout<<"Для продолжения нажмите любую клавишу...";
        _getch();
        system("cls");
    
}
    else
        break;
         
}
 
int n=0;
int b; 
while (true) 
 
{ 
    file>>b;
    if (file.fail()) 
{
        if(!file.eof()) 
{
            file.close();
            cout<<"Файл содержит некорректный символ в "<<n+1<<" элементе. Нажмите любую клавишу для выхода...";
            _getch();                                   
return 0;
        }
        break;
    }
    n++;
}
 
 
if(n==0) {
    file.close(); 
    cout<<"Файл пуст.Нажмите любую клавишу для выхода...";
    _getch();
    return 0; 
}
int *f= new int[n]; 
 
if(!f) { 
    file.close(); 
    cout<<"ошибка выделения памяти"<<endl;
    cout<<"Нажмите любую клавишу для выхода...";
    _getch();
    return 0;
}
cout<<"Массив: "<<endl;
cout<<"Номера:   ";
for(i=1;i<=n;i++)
    cout<<setw(5)<<i;
cout<<endl;
file.clear(); 
file.seekg(0, ios::beg); 
cout<<"Элементы: ";
for(i=0;i<n;i++) {
    file>>f[i];
    cout<<setw(5)<<f[i];
    }
file.close(); 
cout<<endl;
k=0;
z=0;
for(i=1;i<=n;i++)  
    if(i%2)
        z++;
    else
        k++;
s1=0;  
cout<<"Массив из нечетныx индексов: "<<endl;
cout<<"Номера:   ";
for(i=1;i<=z;i++)
    cout<<setw(5)<<i;
cout<<endl;
cout<<"Элементы: ";
for(i=0;i<n;i++) {
    if((i+1)%2!=0){
        cout<<setw(5)<<f[i];
        s1+=f[i];
    }
}
s2=0;
cout<<endl;
cout<<"Массив из четныx индексов: "<<endl;
cout<<"Номера:   ";
for(i=1;i<=k;i++)
    cout<<setw(5)<<i;
cout<<endl;
cout<<"Элементы: ";
for(i=0;i<n;i++) {
    if((i+1)%2==0){
        cout<<setw(5)<<f[i];
        s2+=f[i];
    }
}
cout<<endl;
if(s1==s2)
    cout<<"Сумма нечетного массива = сумме четного массива и = "<<s1;
else
    if(s1>s2)
        cout<<"Сумма нечетного массива= "<<s1;
    else
        cout<<"Сумма четного массива= "<<s2;
cout<<endl;
delete[] f; 
cout<<"Для выхода нажмите любую клавишу...";
_getch();
return 0;
}
[/CPPQT]

При чтении из файла программа находит и выдаёт номера недопустимых символов(а, в, т и т.д.), но когда ошибка заключается в неверном знаке, например: "---4", "4-", "-", "4-6", то программа выдаёт неверный номер некорректного элемента. Как это исправить?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.11.2012, 22:18     Подскажите, как сделать проверку
Посмотрите здесь:

Как сделать проверку на ввод? С++ C++
C++ Как в С сделать проверку на вхождение в диапазон?
Как сделать проверку логина из файла? C++
Как сделать проверку по диапазону цвета пикселя? C++
C++ Как сделать проверку на букву?
C++ Подскажите, как добавить проверку на ввод букв? код внутри
C++ Как сделать проверку на ввод в классе?
Как сделать проверку на ввод символов? C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 07:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru