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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Поиск максимума в массиве http://www.cyberforum.ru/cpp-beginners/thread688666.html
#include "stdafx.h" #include <iostream> #include <conio.h> using namespace std; class first_arr{ int i; public: first_arr(int j){i=j;} int get_i(){return i;} };
C++ Работа с бинарными файлами. Определение четности Создать бинарный файл f и записать в него целые числа. Организовать просмотр бинарного файла и его обработку: Найти все четные числа и их количество. Есть код: #include <stdio.h> #include <iostream> using namespace std; void create(void); void view(void); http://www.cyberforum.ru/cpp-beginners/thread688664.html
C++ Ошибка во время выполнения программы.
Здравствуйте, помогите, пожалуйста, разобраться. Пытаюсь сдать задачу, из 27 тестов в трех - ошибка во время выполнения программы. Условие: Как и у каждого мальчика, у Феди есть игрушечные машинки. Однако ему повезло больше, чем обычному мальчику — все n его машинок являются радиоуправляемыми. Целыми днями он может устраивать различные автогонки и играть с друзьями. Из всех видов гонок Федя...
Создать массив в Microsoft Visual C++ 6.0 C++
Здравствуйте, помогите, пожалуйста, решить задачи по визуальному программированию на Microsoft Visual C++ 6.0 :help: Создать Массив состоящий из 20 случайных целых чисел, вывести элементы массива на экран. Подсчитать, сколько элементов в массиве лежат в интервале от 0 до 50. Вывести подсчитанное количество и вывести эти элементы.
C++ Обмен местами двух соседних слов в строке http://www.cyberforum.ru/cpp-beginners/thread688648.html
Нужно написать программу, которая бы заменяла два соседних слова в строке, например: "6 ноября все студенты страны смогут присоединиться к онлайн-трансляции" заменить на : "ноября 6 студенты все смогут страны к присоединиться онлай-трансляции" реализовать через массив символов (char) без использования string
C++ Уплотнение матрицы Ребята, помогите с этим:Уплотнить заданную матрицу, удаляя из нее строки и столбцы, заполненные только отрицательными элементами. Найти сумму модулей элементов, расположенных ниже главной диагонали. Сделал все, но почему-то не удаляются только столбцы. Где здесь ошибка? #include "stdafx.h" #include <stdio.h> #include <clocale> #include <conio.h> #include "math.h" подробнее

Показать сообщение отдельно
Александр918
0 / 0 / 0
Регистрация: 14.02.2012
Сообщений: 4
04.11.2012, 22:18     Подскажите, как сделать проверку
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", то программа выдаёт неверный номер некорректного элемента. Как это исправить?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 08:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru