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

вывод таблицы из файла - C++

Войти
Регистрация
Восстановить пароль
 
zurrir
Сообщений: n/a
11.10.2009, 11:13     вывод таблицы из файла #1
помогите сделать вывод всего файла.
вывод первых двух столбцов вроде нормально работает,вместо последних двух ставится значение из последней строки. как исправить?

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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#include <stdio.h>
#include <conio.h>
int main(void)
{clrscr();
FILE * My_Potok;
int i;
char Answer = 'v';
struct { char Stat[20];char Kontr[20]; int shet; float summ;} Account;
 
/* */
if (( My_Potok = fopen("dan.out","a+")) == NULL )
    {
    printf("\n owibka otkritija dan.out\n");
    return 1;
    }
else
    printf ("\n uspewnoe otkritie dan.out\n");
/* */
while (Answer != 'e')
    {
    rewind( stdin);
    printf("viberite rezim:\n");
    printf("e-end, r-read, w-wwod.\n");
    scanf("%c",&Answer);
/* */
    if ( Answer == 'w')
        {
        printf("\nvvedite-\n");
        fseek( My_Potok ,0L, SEEK_END);
        printf("stat'ju:\n");
        scanf("%20s", &Account.Stat);
        printf("kontragenta:\n");
                scanf("%20s", &Account.Kontr);
                
                printf("shet:\n");
                scanf("%10i", &Account.shet);
                printf("summu:\n");
        scanf("%10g", &Account.summ);
/* */
        i=0;
        while ( Account.Stat[i])
            {
    fputc( Account.Stat[i], My_Potok);
            i++;
 
            }
 
                //fprintf( My_Potok, "%-20s", Account.Stat);
               fprintf( My_Potok, "%-20s", Account.Kontr);
                fprintf( My_Potok, "%-10i", Account.shet);
        fprintf( My_Potok, "%10g\n", Account.summ);
        }
/* */
    if ( Answer == 'r')
        {                 
        fseek( My_Potok, 0L, SEEK_SET);
        printf("\n________________________________________________________");
        printf("\n statija        kontrag        shet        summ");
        printf("\n________________________________________________________\n");
        while ( !feof( My_Potok))
        { 
                        
            i=0;
            while(  Account.Stat[i])
                {
                Account.Stat[i] = fgetc( My_Potok);
                                 
                i++;
                }
 
                     
            fscanf( My_Potok, "%20s", Account.Kontr);
                        printf("%-20s", Account.Stat);
                        printf( "%-20s", Account.Kontr);
 
 
 
                       fscanf( My_Potok, "%10i", Account.shet);
                        fscanf( My_Potok, "%10g\n", Account.summ);
 
        
                        printf(  "%-10i", Account.shet);
                printf(  "%10g\n", Account.summ);
            
            }
        }
    }
fclose( My_Potok);
return 2;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.10.2009, 11:13     вывод таблицы из файла
Посмотрите здесь:

вывод в файл таблицы C++
C++ Вывод таблицы на экран
C++ Вывод таблицы факториалов
Вывод информации в виде таблицы C++
Вывод результата в виде таблицы C++
C++ Вывод данных ввиде таблицы
C++ Вывод ровной таблицы
Вывод данных в виде таблицы в C++ C++
Вывод данных ввиде таблицы C++
Вывод символа из таблицы ASCII C++
Вывод таблицы умножения C++
C++ Вывод таблицы значений фенкций

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
RazorQ
 Аватар для RazorQ
576 / 343 / 9
Регистрация: 06.02.2009
Сообщений: 1,386
11.10.2009, 11:15     вывод таблицы из файла #2
А подробней. Что именно не получается? Можно выводить посимвольно, блоками, строками и т.д. Вас что интересует?
zurrir
Сообщений: n/a
11.10.2009, 11:32     вывод таблицы из файла #3
не получается вывести строками.
содержание файла примерно такое:
abcdef 33 400
zxcvbn 555 678
qwertyytrewq 222 34567
на экране должно получится
abc def 33 400
zxc vbn 555 678
qwerty ytrewq 222 34567
у меня получается:
abc def 222 34567
zxc vbn 222 34567
qwerty ytrewq 222 34567
помогите исправить
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4661 / 2487 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
11.10.2009, 16:08     вывод таблицы из файла #4
Немного потестировал и получается следущее:
- в строке 56 указатель текущей позиции файла становится в начало файла. Затем очень интересный цикл while (строки 60-69). Этот цикл продолжается до тех пор пока не считает все символы из файла "dan.out". Так же во время этого цикла указатель текущей позиции файла выходит за границу записанного в файле.
И еще очень интересная деталь. В приведенном примере:

Цитата Сообщение от zurrir Посмотреть сообщение
содержание файла примерно такое:
abcdef 33 400
zxcvbn 555 678
qwertyytrewq 222 34567
, символов более 40. А записываете Вы их в переменную Account.Stat (строка 66):
Цитата Сообщение от zurrir Посмотреть сообщение
Account.Stat[i] = fgetc( My_Potok);
Так как переменная Account.Stat описана как (строка 8):
Цитата Сообщение от zurrir Посмотреть сообщение
struct { char Stat[20];char Kontr[20]; int shet; float summ;} Account;
То после 20 первых прочитанных в переменную Account.Stat, следующие 20 записываются в переменную Account.Kontr, а затем еще идет запись в переменные Account.shet и Account.summ (я думаю что как автор кода Вы этого не задумывали).
Следующее: После того как прошел цикл (строки 60-69), Вы пытаетесь в строках 72, 78, 79 записать данные из файла, но записи в в этих строках не происходит, т.к. указатель текущей позиции файла вышел за границу записанного в файле (упоминал это уже выше).
Yandex
Объявления
11.10.2009, 16:08     вывод таблицы из файла
Ответ Создать тему
Опции темы

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