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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Слово array является зарезервированным в Visual Studio 2008? http://www.cyberforum.ru/cpp-beginners/thread360241.html
Привет всем. Читаю старую книгу по С++. Там для массива предлагают использовать имя array, например: int array; Но когда я это напечатал, то у меня слово array стало синим: array Как я понимаю, синими являются зарезервированные слова. Но, судя по учебнику, слово array таковым не является. Там в начале приведён полный список ключевых слов С++ и в этом списке array нет. Но книга старая....
C++ Можно ли задать массив, не зная заранее его длину? Доброе утро всем. Вчера начал читать "главу 4 Массивы". Там предложили 2 варианта объявления массива: 1) неинициализированный int A; 2) инициализированный int A={2,3,5,1}; Я это напечатал, всё работает. Потом в учебнике написано так: http://www.cyberforum.ru/cpp-beginners/thread360238.html
классы и объекты в с++ C++
очень прошу помочь написать программу. т.к. в программировании я 0 :( Написать программу, в которой создаются и разрушаются объекты, определенного пользователем класса. Выполнить исследование вызовов конструкторов и деструкторов КАДРЫ имя – char* номер цеха – int разряд – int
C++ Решение нелинейных уравнений и систем
Написать программу решения нелинейного уравнения методом деления отрезка пополам по формуле:{2}^{x}+{x}^{2}-3=0. Здрасвуйте сделайте пожалуйста программу.
C++ Сортировка http://www.cyberforum.ru/cpp-beginners/thread360231.html
Дан массив из n целых чисел, дан индекс элемента. Требуется расположить элементы массива так, что бы элементы меньше a стояли слева, а элементы больше стояли справа. #include "stdafx.h" #include "iostream" using namespace std; int _tmain(int argc, _TCHAR* argv) {
C++ Список через массив мне не интересуют исходники меня интересуют два вопроса 1)массив должен быть постоянного размера?(ну то есть в конструктор передал n - таким и будет) 2)в задании написано Класс АТД реализовать как динамический массив. Для этого определение класса должно иметь следующие поля: -указатель на начало массива ..... но поскольку это массив то начало массива - нулевой элемент.или нет? подробнее

Показать сообщение отдельно
-=ЮрА=-
Заблокирован
Автор FAQ
04.10.2011, 09:56     Чтение из файла
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
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru