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

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

Восстановить пароль Регистрация
 
Parushic
0 / 0 / 0
Регистрация: 18.09.2011
Сообщений: 27
04.10.2011, 06:38     Чтение из файла #1
формат файла:
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?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.10.2011, 06:38     Чтение из файла
Посмотрите здесь:

C++ Чтение из файла.
Чтение из файла C++
Чтение из файла. C++
Чтение из файла C++
Чтение из файла C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Евгений М.
1033 / 974 / 53
Регистрация: 28.02.2010
Сообщений: 2,817
Завершенные тесты: 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;
}
Parushic
0 / 0 / 0
Регистрация: 18.09.2011
Сообщений: 27
04.10.2011, 07:22  [ТС]     Чтение из файла #3
вообще не то..
-=ЮрА=-
Заблокирован
Автор 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
Евгений М.
1033 / 974 / 53
Регистрация: 28.02.2010
Сообщений: 2,817
Завершенные тесты: 2
04.10.2011, 12:11     Чтение из файла #5
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
интересный ход
Дада.
Цитата Сообщение от Евгений М. Посмотреть сообщение
Как-то переделал. Дальше как-нибудь сам.
-=ЮрА=-
Заблокирован
Автор 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 считывать намерены?БРЕД!
Евгений М.
1033 / 974 / 53
Регистрация: 28.02.2010
Сообщений: 2,817
Завершенные тесты: 2
04.10.2011, 13:17     Чтение из файла #7
-=ЮрА=-, специально для Вас повторю.
Цитата Сообщение от Евгений М. Посмотреть сообщение
Дальше как-нибудь сам.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.10.2011, 23:54     Чтение из файла
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
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:марка.

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

Текущее время: 18:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru