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

Проверка данных из файла - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Матрицы: найти сумму элементов в тех столбцах, которые содержат хотя бы один отрицательный элемент http://www.cyberforum.ru/cpp-beginners/thread561071.html
помогите, пжл: 1)Характеристикой столбца целочисленной матрицы назовем сумму модулей его отрицательных нечетных элементов. Переставляя столбцы заданной матрицы, расположить их в соответствии с ростом характеристик. 2)Найти сумму элементов в тех столбцах, которые содержат хотя бы один отрицательный элемент. Добавлено через 20 часов 3 минуты помогите, плиз, очень нужно.
C++ Массив: вычислить сумму элементов массива, расположенных между первым и вторым отрицательными элементами. помогите, плиз: в одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) номер минимального элемента массива; 2) сумму элементов массива, расположенных между первым и вторым отрицательными элементами. Преобразовать массив таким образом, чтобы сначала располагались все элементы, модуль которых не превышает 1, а потом — все остальные. http://www.cyberforum.ru/cpp-beginners/thread561069.html
C++ Нахождение максимума из двух чисел
Даны 4 числа - a,b,c,d. Получить три числа - x=max(a,b) y=max(c,d) z=max(x,y). Нахождение максимума из двух чисел оформить функцией. Очень нужна помощь. скоро экзамен. а эта задача в билетах есть.
C++ error C2886: std::cout: использование символа в "using"-объявлении члена не допускается
подскажите плз что ето может бить...если не подключаю файл Nokia.h тогда всьо норм.. #include "stdafx.h" #include "iostream" #include "Nokia.h" using std::cout; using std::cin; using std::endl; int main(){
C++ Модель гонки черепахи и зайца (программа даже не запускается..) http://www.cyberforum.ru/cpp-beginners/thread561062.html
условие прикреплено #include <iostream> #include <clocale> #include<conio.h> #include <STDLIB.H> using std::srand; using std::rand; #include <time.h> #include <dos.h>
C++ Сортировка массивов Мне нужна прога, которая сортирует массив методом бинарных деревьев, причём, чтобы можно было все элементы сначала ввести. Нам язык нифига не объясняют, а задачи дают сложные. Сам догнать не могу! помогите, пожалуйста! подробнее

Показать сообщение отдельно
MrCold
851 / 749 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
30.04.2012, 01:34     Проверка данных из файла
Сделал проверку - файл может содержать только цифры и точки .
Первый вариант проги не особо понравился , поэтому в
двух вариантах .
Во второй - ввод имени файла с циклом .Выход ввести - '0'
Писал на VS2010 в др. среде возможны ошибки ,если что
пишите сюда .

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
#include <iostream>
#include <fstream> 
#include <string> 
#include <cctype> 
#include <conio.h> 
 
const int SIZE = 10;
 
 
void readFile (float *A, std::string filename)
{        size_t count = 0, i = 0;
         char ch, dig[50];
         std::ifstream file;
         file.open(filename);
         if ( file.is_open())
         {
         std::cout << "The file is opened !!! "<<std::endl;
 
         while(file >> ch)
         {
         if(ch != '.')
         if(!isdigit(ch))
         {
             count++;
             }
         }
         if(count)
        {
        std::cout << "The file  contains invalid characters. Choose a different name of file" << std::endl;
        getch(); exit(1) ; }
        else{
            file.clear();
        file.seekg(std::ios::beg);
     while (file >> dig && i < SIZE)
    {      
        A[i++] = atof(dig);
        }
       }
}
else 
    {
    std::cout <<"Error in opening file !" << std::endl;
    getch(); exit(1) ;
    }
file.close();
}
 
int main()
{     
  std::string filename ;
  size_t i = 0 ;
  float arr[SIZE] = {{0}};
  std::cout <<"Input a name of file :  ";
  getline(std::cin,filename);
  
  readFile(arr,filename);
    for( i = 0;i < SIZE;i++)
        std::cout << arr[i] << std::endl;
 
 getch();                  
                  return 0; 
}
2.
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
/////////////////////////////////////////////////////////////////////////////////////
#include <iostream>
#include <fstream> 
#include <string> 
#include <conio.h> 
 
const int SIZE = 10;
 
bool statusFile(std::ifstream &, std::string);
bool correctData(std::ifstream &, std::string);
void readFile (float *A, std::ifstream &, std::string);
 
int main()
{     
  std::string filename ;
  size_t i = 0 ;
  float arr[SIZE]  = {{0}};
  std::ifstream file;
  for(;;){
       std::cout <<"\nInput a name of file (EXIT - input '0'):\n\n";
  getline(std::cin,filename);
  if(filename == "0") return 0;
  if(!statusFile(file, filename))
  {
      std::cout << "File could not opening ! Choose a different name of file.\n";
  }
  else if(!correctData(file, filename))
  {
      std::cout << "The file  contains invalid characters. Choose a different name of file.\n";
  
  }
  else break;
  }
  readFile(arr, file, filename);
 
  // ПОЛУЧЕННЫЙ МАССИВ 
     for( i = 0;i < SIZE;i++)
        std::cout << arr[i] << std::endl;
  
  getch();                  
                  return 0; 
}
 
bool statusFile(std::ifstream & file, std::string filename)
{
   file.open(filename);
   if(file.fail())
       return false;
   else
       return true;
}
 
bool correctData(std::ifstream &file, std::string filename)
{        size_t count = 0;
         char ch;
    while(file >> ch)
         {
         if(ch != '.')
         if(!isdigit(ch)) count++;
         }
       if(count) return false;
   else
       return true;
 
}
 
void readFile (float *A, std::ifstream &file, std::string filename)
{   
         char ch[50];
         size_t i = 0;
        file.clear();
        file.seekg(std::ios::beg);
     while (file >> ch && i < SIZE)
    {      
        A[i++] = atof(ch);
        }
}
 
Текущее время: 23:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru