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

Вывод из файла - C++

Восстановить пароль Регистрация
 
Pakestan228
0 / 0 / 0
Регистрация: 16.11.2013
Сообщений: 28
24.12.2013, 23:40     Вывод из файла #1
C++ (Qt)
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
#include "stdafx.h"
#include "iostream"
 
using namespace std;
    
    struct avia
    {
      char DepCity[64];
      char ArrCity[64];
      unsigned short int duration;
      unsigned short int numbers;
      unsigned int cost;
    }*flight1;
 
int main()
{
int ks=0,n;
    
    FILE* f=fopen("d:\Flights.txt","rt");
    if (f)
    {
    char c;
    while (!feof(f))
    if ((c=fgetc(f))=='\n' || c==EOF) ks++; //узнаем, сколько строк в файле
    n=ks/5;
    flight1 = new avia[n];                  //выделяем память для массива структур
 
    fclose(f);
FILE* f=fopen("d:\Flights.txt","rt");       //закрываем и открываем файл, чтобы чтение началось сначала
        
 
 
            for(int i=0;i<n;i++)
            {   
    
            fgets(flight1[i].DepCity,64, f);
            flight1[i].DepCity[strlen(flight1[i].DepCity) - 1] = '\0';
                fgets(flight1[i].ArrCity,64, f);
                flight1[i].ArrCity[strlen(flight1[i].ArrCity) - 1] = '\0';
 
                
                fscanf(f,"%d",&flight1[i].duration);
                fscanf(f,"%d",&flight1[i].numbers);         
                fscanf(f,"%d",&flight1[i].cost);
                
            }
 
 
    for(int i=0;i<n;i++)                    //вывод элементов массива структур
    {
        cout<<flight1[i].DepCity<<endl;
        cout<<flight1[i].ArrCity<<endl;
        cout<<flight1[i].duration<<endl;
        cout<<flight1[i].numbers<<endl;
        cout<<flight1[i].cost<<endl;
    }
    fclose(f);  
 
    }
    else  cout<<"Error";    
    cin.ignore();
    cin.get();
    delete [] flight1;                      //очистка памяти
    return 0;
}
В строке 33, в цикле ошибка, пропадает строчка, в результате чего строки выводятся криво
Вывод из файла

Вывод из файла
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.12.2013, 23:40     Вывод из файла
Посмотрите здесь:

вывод из файла C++
Вывод файла C++
C++ вывод из файла
C++ Вывод из файла
C++ вывод из файла
Вывод из файла C++
Вывод из файла C++
Вывод из файла С++ C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.12.2013, 23:53     Вывод из файла #2
После последнего fscanf(), в цикле, нужно убрать '\n' из потока (перед gets() не должно быть):
C++
1
fgetc(f);
Pakestan228
0 / 0 / 0
Регистрация: 16.11.2013
Сообщений: 28
24.12.2013, 23:58  [ТС]     Вывод из файла #3
Огромное спасибо
Yandex
Объявления
24.12.2013, 23:58     Вывод из файла
Ответ Создать тему
Опции темы

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