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

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

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

Чтение из файла - C++

04.10.2011, 06:38. Просмотров 517. Ответов 7
Метки нет (Все метки)

формат файла:
text, 200
text2, 180
и т.д....

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
#include <math.h>
#include <stdio.h>
 
struct cars {
 
       char models[50], speed[8];
       
} infocars[50];
 
 
 
        int main()
{  clrscr();
             int i;
        FILE *file;
            char* file_name = "C:\\labs\\models.txt";
            char name[50] = "none";
            file = fopen( file_name, "r");
            if( file !=0 ) {
                for(i = 0; i < 20; i++) {
                fgets(infocars[i].models, 58, file);
                    cout << '\n' << infocars[i].models;
                
 
                }
    }
            if (infocars[i].speed > 180) {
                cout << "'\n'Modeli so skorost'u > 180" << infocars[i].models;
 
 
                return 0;
    }
Как считать из файла скорости в типе чар? и сделать сортировку с условием, чтобы вывод скорости был больше 180?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.10.2011, 06:38
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Чтение из файла (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++
В файле несколько раз встречается ноль, и ни как не получается прочитать его полностью. Как можно решить данную проблему ?

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Евгений М.
1035 / 976 / 54
Регистрация: 28.02.2010
Сообщений: 2,829
Завершенные тесты: 2
04.10.2011, 07:08 #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
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
 
struct cars {
 
           char models[50], speed[8];
           
} infocars[50];
 
 
 
int main()
{
    int i;
    FILE *file;
    char* file_name = "C:\\labs\\models.txt";
    char name[50] = "none";
    file = fopen( file_name, "r");
    if( file !=0 ) {
    for(i = 0; i < 20; i++) {
        fscanf(file, "%s", infocars[i].models);
        fscanf(file, "%s", infocars[i].speed);
        printf("%s\n", infocars[i].models);
 
 
    
 
    if (atoi(infocars[i].speed) > 180)
    printf("Model so skorost'u > 180\n");
    }
    }
 
    return 0;
}
0
Parushic
0 / 0 / 0
Регистрация: 18.09.2011
Сообщений: 27
04.10.2011, 07:22  [ТС] #3
вообще не то..
0
-=ЮрА=-
Заблокирован
Автор FAQ
04.10.2011, 09:56 #4
Parushic, если читаешь текст и числа то лучше структуру организовывать таким образом
C++
1
2
3
4
5
6
struct cars 
{
           char models[50]; 
           long speed;
};
cars infocars[50];//Объявляй в программе
Цитата Сообщение от Евгений М. Посмотреть сообщение
Как-то переделал. Дальше как-нибудь сам.
- да уж

Цитата Сообщение от Евгений М. Посмотреть сообщение
fscanf(file, "%s", infocars[i].models);
* * * * * * * * fscanf(file, "%s", infocars[i].speed);
- Евгений М., очевидно вы хотели оснастить поле models ещё и запятой, интересный ход

Parushic, сейчас помогу
PS:Буду делать в Си т.к. чтение файла выполнено в стиле Си да и хедеры Си-ные

Добавлено через 25 минут
Вот на Си
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
#include <stdio.h>
#include <conio.h>
 
struct cars 
{
    char models[50]; 
    long speed;
};
 
int main()
{
    char buf[50];
    long n, i;//Счётчик структур
    cars infocars[50]={0};//Объявили в программе + обнулили данные внутри
    FILE * f = fopen("data.txt","r");
    if(!f)
        printf("Error open data.txt\r\n");
    else
    {
        n = 0;
        while(!feof(f))//Читаем до конца файла
        {
            if(fscanf(f,"%s%d",buf,&infocars[n].speed))
            {
                //Убираем ','-ую вконце text
                sscanf(buf,"%[^,]",infocars[n].models);
                //%[^,] - означает собрать символы до появления ','
                n++;
            }
            else//На всякий случай страхуемся, если fscanf ничего не считал
                break;//останавливаем чтение (0 == fscanf - скорее всего в файле ошибка)
        }
        fclose(f);//Закрыли файл
        printf("Read %u structures\r\n",n);
        printf("Modeli so skorost'u > 180\r\n");
        for(i = 0; i < n; i++) 
            if (180 < infocars[i].speed)
                printf("%s\r\n",infocars[i].models);
    
    }
    printf("Press any key to continue\r\n");
    getch();
    return 0;
}
data.txt
text1, 200
text2, 180
text3, 380
text4, 110
text5, 240

Read 5 structures
Modeli so skorost'u > 180
text1
text3
text5
Press any key to continue
1
Евгений М.
1035 / 976 / 54
Регистрация: 28.02.2010
Сообщений: 2,829
Завершенные тесты: 2
04.10.2011, 12:11 #5
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
интересный ход
Дада.
Цитата Сообщение от Евгений М. Посмотреть сообщение
Как-то переделал. Дальше как-нибудь сам.
0
-=ЮрА=-
Заблокирован
Автор FAQ
04.10.2011, 12:53 #6
Цитата Сообщение от Евгений М. Посмотреть сообщение
Как-то переделал. Дальше как-нибудь сам.
- ваше как то

- больше на нубство смахивает(где проверка достижения конца файла?!).

Не по теме:

А ещё меня критиковать осмеливаетесь



Цитата Сообщение от Евгений М. Посмотреть сообщение
for(i = 0; i < 20; i++) {
* * * * * * * * fscanf(file, "%s", infocars[i].models);
* * * * * * * * fscanf(file, "%s", infocars[i].speed);
- это никуда негодный код, а что же делать если в файле 3 структуры, или 33 вы всегда 20 считывать намерены?БРЕД!
0
Евгений М.
1035 / 976 / 54
Регистрация: 28.02.2010
Сообщений: 2,829
Завершенные тесты: 2
04.10.2011, 13:17 #7
-=ЮрА=-, специально для Вас повторю.
Цитата Сообщение от Евгений М. Посмотреть сообщение
Дальше как-нибудь сам.
0
Parushic
0 / 0 / 0
Регистрация: 18.09.2011
Сообщений: 27
08.10.2011, 23:54  [ТС] #8
Забыл про форум на недельку) И вот сам додумал Спасибо уже выразил помогающему
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
#include <conio.h>
#include <stdio.h>
 
struct cars {
 
       char models[50];
       int speed;
 
} infocars[50];
 
 
 
        int main()
{  clrscr();
             int i;
        FILE *file;
            char* file_name = "C:\\labs\\models.txt";
            char name[50] = "none";
            file = fopen( file_name, "r");
            if( file !=0 ) {
                for(i = 0; i < 20; i++) {
                    fscanf(file, "%i:%s",&infocars[i].speed,&infocars[i].models);
                   if(infocars[i].speed > 180) {
                   cout << '\n' << infocars[i].models;
                   cout << '-' << infocars[i].speed;
                  }
 
                }
    }
 
 
                return 0;
    }
формат - 220:марка.

Если есть у кого советы по поводу кода - напишите
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.10.2011, 23:54
Привет! Вот еще темы с ответами:

Чтение из файла - C++
хочу прочесть из фалай пример txt втору строку первый символ пробывал fgets читает &quot;все&quot; какие варианты еще есть чтения из...

Чтение из файла - C++
Доброго времени суток! Предстоит такая задача, дан файл, в котором записана дата и курс валюты (через пробел) в следующем виде: ...

Чтение из файла - C++
Задача состоит в следующем. Есть файл, в котором в трех колонках размещены по 5 подлежащих, сказуемых и определений. В программе эти слова...

Чтение из файла - C++
Подскажите как вывести на экран содержимое файла на Си, если данные разделены &quot;;&quot;. Файл имеет вид: 1;23233233;1234-43;иванов...


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

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

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