Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
QWERY_2012
5 / 5 / 2
Регистрация: 09.09.2012
Сообщений: 227
#1

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

02.11.2012, 00:26. Просмотров 342. Ответов 7
Метки нет (Все метки)

Программа должна читать файл 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);
              }
     }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.11.2012, 00:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос В чём может быть ошибка программы? (C++):

В чём может быть ошибка программы? - C++
Подскажите, пожалуйста, в чём может быть ошибка в программе: Test.cpp #include &lt;iostream&gt; #include &quot;Date.h&quot; #include...

В чём может быть ошибка? - C++
Не пойму в чём ошибка в программе: #include &lt;iostream&gt; using namespace std; int main( ) // Program that...

В чём может быть ошибка? - C++
Описать функцию Power4(x,a,ξ) вещественного типа (параметры х, а, ξ - вещественные, |х|&gt;1; a,ξ &gt; 0), находящую приближенное значение...

В чём может быть ошибка? - C++
Пишет, что нету точки с запятой. Где??? #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; { class Program ...

История одной ошибки. В чём может быть дело? - C++
Проблема вот в чём. Задал я процедуру void FK1(char&amp; a, char&amp; a1, char&amp; a2, int c) switch (c) { case '1': if (a=='-') { a =...

Запутался с IF. Может кто-то знает в чём ошибка? - C++
Программа, нужно ввести значение &quot;х&quot; и &quot;а&quot;, и определить значение функции в зависимости от значения аргумента... Ошибку начинает писать с...

7
castaway
Эксперт С++
4916 / 3024 / 370
Регистрация: 10.11.2010
Сообщений: 11,081
Записей в блоге: 10
Завершенные тесты: 1
02.11.2012, 00:31 #2
Почему программа должна файл читать, а сама пишет в него !? (53-я строка)
1
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)?

Очень хочется понять как это работает.
0
castaway
Эксперт С++
4916 / 3024 / 370
Регистрация: 10.11.2010
Сообщений: 11,081
Записей в блоге: 10
Завершенные тесты: 1
02.11.2012, 00:51 #4
Цитата Сообщение от QWERY_2012 Посмотреть сообщение
Очень хочется понять как это работает.
Ок. Функции чтения:
1. fgets ( http://www.cplusplus.com/reference/clibrary/cstdio/fgets/ )
2. fscanf ( http://www.cplusplus.com/reference/clibrary/cstdio/fscanf/ )
3. fread ( http://www.cplusplus.com/reference/clibrary/cstdio/fread/ )
0
alsav22
5428 / 4823 / 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);
    }
}
1
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
0
alsav22
5428 / 4823 / 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;
Остальное сами додумайте.
1
Миниатюры
В чём может быть ошибка программы?  
QWERY_2012
5 / 5 / 2
Регистрация: 09.09.2012
Сообщений: 227
02.11.2012, 08:34  [ТС] #8
0
02.11.2012, 08:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.11.2012, 08:34
Привет! Вот еще темы с ответами:

где может быть ошибка на с++ - C++
при подсчете sn через 5 членов цикл повторяется вот текст программы #include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;math.h&gt; ...

Где может быть ошибка? - C++
#include &lt;iostream&gt; #include &lt;queue&gt; #include &lt;string&gt; using namespace std; int main(){ string s; queue&lt;string&gt;...

В чем может быть ошибка? - C++
Вот программа: #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;math.h&gt; #include &lt;stdlib.h&gt; #include...

Правильно ли и в каком случае может быть ошибка? - C++
Определить произведение элементов массива, расположенных между максимальным и «центральным» элементами массива (предполагается, что число...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.