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

В чём может быть ошибка программы? - C++

Восстановить пароль Регистрация
 
QWERY_2012
5 / 5 / 2
Регистрация: 09.09.2012
Сообщений: 227
02.11.2012, 00:26     В чём может быть ошибка программы? #1
Программа должна читать файл parts.dat что бы создать репорк на основе данных в файле. На дисплай долны выводится: Part Current Amt
Number Balance Needed

Данные в файле parts.dat:
AP123 100 53 75
CB876 150 89 100
PC389 50 12 50
ZN264 164 143 150


Sample output:
Enter an input file name: parts.dat

Part Current Amt
Number Balance Needed
----------------------------------------------
AP123 47 28
CB876 61 39
PC389 38 12
ZN264 21 129

The file has been successfully written.

примерный код:

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
#include <stdio.h>
#include <stdlib.h>
 
         FILE *getOpen();
         void inOut(FILE *);
 
int main()
{
    
    FILE *outFile;
    
    outFile = getOpen();
    inOut(outFile);
    
    fclose(outFile);
    printf("\n The file has been successfully writte.\n");
    
    
    system("Pause");
    return 0;
}   
  
    FILE *getOpen()
    {
         FILE *fname;
         char name[13];
         
         printf("\n Enter a file name: ");
         gets(name);
         
         fname = fopen(name, "r");
         if (fname == NULL)
         {
           printf("\n Failed to open the file %s.\n", name);
           exit(1);        
         }
         
         return(fname);
            
    }
 
 
     void inOut(FILE *fname)
     {
          int count;
          char line[15];
          
          printf("Part number  Current Balance  Ammount\n");
          for (count = 0; count < 4; count++)
          {
              puts(line);
              fprintf(fname, "%s\n", line);
              }
     }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.11.2012, 00:26     В чём может быть ошибка программы?
Посмотрите здесь:

В чём может быть ошибка? C++
C++ В чем может быть ошибка?
C++ В чём может быть ошибка?
Где может быть ошибка? C++
C++ где может быть ошибка на с++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
castaway
Эксперт С++
4841 / 2980 / 367
Регистрация: 10.11.2010
Сообщений: 11,013
Записей в блоге: 10
Завершенные тесты: 1
02.11.2012, 00:31     В чём может быть ошибка программы? #2
Почему программа должна файл читать, а сама пишет в него !? (53-я строка)
QWERY_2012
5 / 5 / 2
Регистрация: 09.09.2012
Сообщений: 227
02.11.2012, 00:46  [ТС]     В чём может быть ошибка программы? #3
А так правильно?

C++
1
2
3
4
5
6
7
8
9
10
11
12
     void inOut(FILE *name)
     {
          int count;
          char line[15];
          
          printf("Part number  Current Balance  Ammount\n");
          for (count = 0; count < 4; count++)
          {
              puts(line);
              printf("%s\n", line);
              }
     }
Но на экран выводит имя файла parts.dat - 8 раз вместо данных из файла.
Подскажите как описать вывод и посчитать Current Balance = 1 число в строке - 2 число в строке?

Добавлено через 8 минут
Подскажите как описать вывод и посчитать:
- Current Balance = 1 число в строке (file parts.dat) - 2 число в строке?
- Amt Needed = 3 число в строке(file parts.dat) - Current Balance(file parts.dat)?

Очень хочется понять как это работает.
castaway
Эксперт С++
4841 / 2980 / 367
Регистрация: 10.11.2010
Сообщений: 11,013
Записей в блоге: 10
Завершенные тесты: 1
02.11.2012, 00:51     В чём может быть ошибка программы? #4
Цитата Сообщение от QWERY_2012 Посмотреть сообщение
Очень хочется понять как это работает.
Ок. Функции чтения:
1. fgets ( http://www.cplusplus.com/reference/c.../cstdio/fgets/ )
2. fscanf ( http://www.cplusplus.com/reference/c...cstdio/fscanf/ )
3. fread ( http://www.cplusplus.com/reference/c.../cstdio/fread/ )
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
02.11.2012, 04:53     В чём может быть ошибка программы? #5
Цитата Сообщение от QWERY_2012 Посмотреть сообщение
А так правильно?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void inOut(FILE *name)
{
    int count;
   
    printf("Part number  Current Balance  Ammount\n");
    for (count = 0; count < 4; count++)
    {
        char line[15];
        
        fgets(line, 15, name);
        
        printf("%s\n", line);
    }
}
QWERY_2012
5 / 5 / 2
Регистрация: 09.09.2012
Сообщений: 227
02.11.2012, 06:44  [ТС]     В чём может быть ошибка программы? #6
Спасибо огромное!!!

Добавлено через 4 минуты
А как посчитать:


Исходный файл:
Данные в файле parts.dat:
AP123 100 53 75
CB876 150 89 100
PC389 50 12 50
ZN264 164 143 150



- Current Balance = 1 число в строке (file parts.dat) - 2 число в строке?
- Amt Needed = 3 число в строке(file parts.dat) - Current Balance(file parts.dat)?



Sample output:
Enter an input file name: parts.dat

Part Current Amt
Number Balance Needed
----------------------------------------------
AP123 47 28
CB876 61 39
PC389 38 12
ZN264 21 129
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
02.11.2012, 07:35     В чём может быть ошибка программы? #7
Цитата Сообщение от QWERY_2012 Посмотреть сообщение
А как посчитать:
На примере первой строки:
C++
1
2
3
4
5
6
7
8
9
10
11
12
char str[6];
int x, y, z;
 
fscanf(name, "%s", str);
fscanf(name, "%d%d%d", &x, &y, &z);
 
cout << str << ' ' << x << ' ' << y << ' ' << z << endl;
 
x = x - y;
z = z - x;
 
cout << str << ' ' << x << ' ' << z << endl;
Остальное сами додумайте.
Миниатюры
В чём может быть ошибка программы?  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.11.2012, 08:34     В чём может быть ошибка программы?
Еще ссылки по теме:

C++ В чём может быть ошибка?
В чём может быть ошибка программы? C++
История одной ошибки. В чём может быть дело? C++

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

Или воспользуйтесь поиском по форуму:
QWERY_2012
5 / 5 / 2
Регистрация: 09.09.2012
Сообщений: 227
02.11.2012, 08:34  [ТС]     В чём может быть ошибка программы? #8
Yandex
Объявления
02.11.2012, 08:34     В чём может быть ошибка программы?
Ответ Создать тему
Опции темы

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