Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 04.12.2013
Сообщений: 14
1

Проверка содержимого текстового файла

13.02.2014, 19:30. Показов 3333. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помоги проверить содержимое файла на числа
!Сделал вот как я думаю
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
bool lch(string FN)
{
 ifstream F1(FN, ios::in);
char ch;
 while (F1 >> ch)
 {
 
  if (((ch <= 9) && (ch >= 0)) || (ch == '-') || (ch == ' ') || (ch == '\n') )
   return true;
  else
   return false;
 }
}
Но даже если в файле нет ничего постороннего, все равно программа видит что есть посторонние символы.

Добавлено через 21 час 31 минуту
Весь код программы
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
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
#include "stdafx.h"
#include <iostream> 
#include <conio.h>  
#include<iomanip>
#include <time.h>   
#include<fstream>
#include<string>
using namespace std;
bool lch(string FN)
{
 ifstream F1(FN, ios::in);
char ch;
 while (F1 >> ch)
 {
 
  if (((ch <= 9) && (ch >= 0)) || (ch == '-') || (ch == ' ') || (ch == '\n') )
   return true;
  else
   return false;
 }
}
 
int func_kol(string FN)
{
ifstream F1(FN, ios::in);
int c,i=0;
while (!F1.eof())
 {
  F1 >> c;
  i++;
 }
 return i;
}
 
int main()
{ setlocale(LC_ALL, "rus");
string FNAME;
bool h = false;
do
{
cout<<"Введите имя файла:";
    cin>>FNAME;
    ifstream F1(FNAME, ios::in);
 if (!F1) 
  {
cout<<"Файл не открыт"<<endl;
  }
 
    
else
   {
    if (lch(FNAME) == false) cout << "В строке есть неккоректные данные!" << endl;
    else
    {
      int n;
bool p = false;
int i,sa,s=0;
      n = func_kol(FNAME);
 int  *a=new int[n];
      h= true;
      a=(int*)malloc(n*sizeof(int)); //выделение динам.памяти
 
if(!a)                              //проверка факта выделения памяти
 
{cout<<"\nНедостаточно памяти";}
 cout<<setw(18)<<"Номера элементов:";
for (i=1; i<(n+1); i++) 
cout<<setw(3)<<i;
cout<<endl;
cout<<setw(18)<<"Элементы:";
for (i=0; i<n; i++) 
   {
        F1>>a[i];
        cout<<setw(3)<<a[i];
        {s+=a[i];}
   }
for ( i = 0; i <10; i++)
{
    if(a[i]<0)p=true;
 }
sa=s/n;
if (p == true)
{
  for (i = (n - 5); i < n; i++)
  {
   a[i] = sa;
  }
  cout<<endl;
 cout<<setw(18)<<"Конечный массив:";
    for ( i = 0; i < n; i++)
    cout<<setw(3)<<a[i];
    
} 
else
{ 
    cout<<endl;
    cout<<setw(18)<<"В первой 10ке нет отрицательных элементов";
}
 delete []a;
  free(a);
 F1.close();
    }}
 
}while(h==false);
 
_getch();
 return 0;
 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.02.2014, 19:30
Ответы с готовыми решениями:

Проверка содержимого текстового файла
Помогите пожалуйста сделать проверку содержимого текстового файла. Если там есть хотя бы одна не...

Копирование содержимого текстового файла
Программа копирует этот файл три раза. В первый раз одна использует буфер стандартного размера,...

Вывод содержимого текстового файла на экран
Нужно написать программу чтоб выводила содержимое текстового файла на экран, желательно по строчно...

Отправка содержимого текстового файла на почту
Добрый вечер. Есть код сендера: IdSMTP1-&gt;AuthenticationType=atLogin; ...

6
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
13.02.2014, 19:59 2
Если это проверка на цифры, то:
C++
1
if (((ch <= '9') && (ch >= '0'))
0
0 / 0 / 0
Регистрация: 04.12.2013
Сообщений: 14
13.02.2014, 20:54  [ТС] 3
alsav22, На цифры, пробелы, конец строки. Просто в моём условии, когда файл забит правильно, то все равно мне выдается как будто там некоректные символы, хотя там только цифры
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
13.02.2014, 21:08 4
Цитата Сообщение от luxlite_oleg Посмотреть сообщение
alsav22, На цифры, пробелы, конец строки.
И? На цифры так проверяете?
Цитата Сообщение от luxlite_oleg Посмотреть сообщение
if (((ch <= 9) && (ch >= 0))
0
0 / 0 / 0
Регистрация: 04.12.2013
Сообщений: 14
13.02.2014, 21:22  [ТС] 5
alsav22, if (((ch <= 9) && (ch >= 0)) || (ch == '-') || (ch == ' ') || (ch == '\n') )
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
13.02.2014, 21:25 6
Цитата Сообщение от luxlite_oleg Посмотреть сообщение
alsav22, if (((ch <= 9) && (ch >= 0)) || (ch == '-') || (ch == ' ') || (ch == '\n') )
Между этим:
C++
1
 if (((ch <= 9) && (ch >= 0))
и этим:
C++
1
if (((ch <= '9') && (ch >= '0'))
разницу видите?
1
0 / 0 / 0
Регистрация: 04.12.2013
Сообщений: 14
13.02.2014, 21:28  [ТС] 7
alsav22, Ой, блин, не заметил, всё, сейчас исправил, работает.

Добавлено через 19 секунд
alsav22, Спасибо!
0
13.02.2014, 21:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.02.2014, 21:28
Помогаю со студенческими работами здесь

Считывание текстового содержимого exe файла
Программа считывает содержимое txt файлов, но отказывается считывать содержимое exe(выводит MZ?),...

Функция: вывод содержимого текстового файла на экран
Привет всем!На уроке проходили тему &quot;ИСПОЛЬЗОВАНИЕ ФАЙЛОВОЙ СИСТЕМЫ&quot;,я чото неразобрал что идет к...

Перевод содержимого текстового файла в верхний регистр
Собственно вопрос в шапке. Как перевести всё содержимое текстового файла в верхний регистр?...

Копирование содержимого одного текстового файла в другой
Открытие одного текстового файла и создание другого с записью в него информации с первого открытого...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru