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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
DonVito
0 / 0 / 0
Регистрация: 14.03.2013
Сообщений: 3
#1

Чтение из файла и проверка - C++

26.05.2013, 21:55. Просмотров 355. Ответов 3
Метки нет (Все метки)

Нужно написать функцию для чтения и проверки данных из файла, внутри него могут храниться любые символы, но считывать нужно только float формат. Считывать нужно только по два правильных значения с каждой строки

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
FILE* pfile= fopen("С:\\input.txt","r");
    if (pfile){
        int a;
        while((a=fscanf(pfile, "%f%f", &x, &y))!=EOF) {
            if (!a) {
             fseek(pfile,1,SEEK_CUR);
                continue;
            }
            spisok.AddLast(x, y);
        };
        }
    else{
        cout<<" Ошибка"<<endl;
    }
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.05.2013, 21:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Чтение из файла и проверка (C++):

Переделать в коде чтение из файла в чтение с клавиатуры - C++
Переделайте что бы текст считывался с клавиатуры, а не с файла! Буду благодарен за помощь! //файл должен начинаться со слова, между...

Чтение из файла. Повторное чтение файла - C++
Добрый день. Необходимо реализовать в программе функцию повторного чтения данных из файла, в случае некорректного ввода их в оный. Вот...

Преобразование текстового файла в двоичный и чтение исходных данных из двоичного файла. - C++
#include&lt;iostream&gt; #include&lt;fstream&gt; #include&lt;locale.h&gt; #include&lt;iomanip&gt; #include &lt;cstdlib&gt; using namespace std; struct...

Чтение нескольких структур и одной переменной из бинарного файла. Формат файла имеется - C++
Формат файла состоит из 3 структур и одной переменной. Подробное описание формата во вложении, просьба посмотреть его. У меня возникла...

как может корректно выполняющийся оператор >> (чтение из текстового файла) негативно влиять на открытие другого файла? - C++
Друзья! Создадим два текстовых файла, f_0.txt и f_1.txt и что-нибудь в них запизаем, например в первый запихаем 1234 а во второй 5678 и...

Чтение файла с несколькими знаками конца файла - C++
В файле несколько раз встречается ноль, и ни как не получается прочитать его полностью. Как можно решить данную проблему ?

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
papays
4 / 4 / 1
Регистрация: 27.03.2010
Сообщений: 18
27.05.2013, 18:37 #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
// Читает вещественные числа из любого текстового файла в массив Value
#include <conio.h>
#include <iostream>
#include <stdio.h>
#include <math.h>
#include <cstring>
using namespace std;
 
bool isdigit (char x)
 
{ if (x >= '0' && x <= '9') return true;
  else return false;
} 
 
 
int main()
{ 
    char Str[128];
FILE *F;
if ((F = fopen("file.txt", "rt")) == NULL)
{
 cout <<"Файл не удается открыть";
 return 1;
}
 
do
{
 fgets(Str,100,F);
 if(feof(F)) break;
 
}
while(true);
fclose(F);  
  float Value[12]; 
  int Len = strlen (Str);
 int j=0; 
  for (int i=0; i<Len; i++) 
    {
      while (!isdigit(Str[i]) && i<Len)i++; 
 int h=1; 
      float S=0;
      bool Flag = true; 
      while ((isdigit(Str[i])||Str[i]=='.') && i<Len) 
        {
          if (Str[i]=='.') {Flag = false; i++; continue;}
          if (Flag) 
            S = S*10 + (int)Str[i] -48;
          else 
            S = S+((int)Str[i] - 48)*pow(0.1,h++);
          i++; 
        }
     *(Value + j++)= S;  
    }
   // например выводит массив в консольное окно 
  for(int t=0; t<12; t++)
   cout << Value [t] <<"\n";
   
   getch(); 
 return 0;  
}
1
DonVito
0 / 0 / 0
Регистрация: 14.03.2013
Сообщений: 3
27.05.2013, 20:43  [ТС] #3
Спасибо. Но только мне не понятно, что вы делаете вот здесь
Цитата Сообщение от papays Посмотреть сообщение
S = S*10 + (int)Str[i] -48;
и здесь
Цитата Сообщение от papays Посмотреть сообщение
S = S+((int)Str[i] - 48)*pow(0.1,h++);
и почему такие числа
0
papays
4 / 4 / 1
Регистрация: 27.03.2010
Сообщений: 18
28.05.2013, 18:31 #4
Запусти программу без (-48) увиди что символ точка стоит не на своей позиции, не ленись эксперементировать!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.05.2013, 18:31
Привет! Вот еще темы с ответами:

чтение из файла - C++
Задача состоит в том,чтобы считать данные из файла,который содержит только целые числа со знаком,записать их в массив и вывести в консоль. ...

чтение из файла - C++
файл текст... чтение... ... char font_name = {0}; int font_size = 0;

Чтение из файла. - C++
Здравствуйте. Учусь языку С++. Отказываюсь напрочь понимать как в оконном приложении осуществить чтение из файла с условием, что мне...

Чтение из файла - C++
здравствуйте господа форумчане. у меня на мой взгляд глупый вопрос, но уж так сложилось что тямы на него самому ответить не хватает. ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
28.05.2013, 18:31
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru