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

Странная ошибка в программе - C++

Восстановить пароль Регистрация
 
Johnlion
 Аватар для Johnlion
62 / 2 / 0
Регистрация: 11.05.2011
Сообщений: 666
24.12.2011, 18:45     Странная ошибка в программе #1
Странная ошибка в программе

Когда ввожу имя файла и жму Enter - выводится такая ошибка. Что делать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.12.2011, 18:45     Странная ошибка в программе
Посмотрите здесь:

Builder 6 Странная ошибка C++
C++ Странная ошибка
очень странная ошибка с++ C++
C++ Странная ошибка
C++ Странная(или не странная, незнаю) реакция на буквы, знаки операций
C++ Странная ошибка в коде
Странная ошибка (в дебаггере не выявляется) C++
C++ Странная ошибка (зависимость от cout)

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
24.12.2011, 18:51     Странная ошибка в программе #2
Цитата Сообщение от Johnlion Посмотреть сообщение
Что делать?
показать свой код
видимо вы открываете файл на чтение, а файла не существует
Johnlion
 Аватар для Johnlion
62 / 2 / 0
Регистрация: 11.05.2011
Сообщений: 666
24.12.2011, 18:52  [ТС]     Странная ошибка в программе #3
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>
#define N 50
 
struct vxod
{
    char name[N];
    float god_1940;
    float god_1950;
    float god_1955;
    float god_1958;
};
 
struct vixod
{
    char name[N];
    float min;
    float absol_prirost;
};
 
char ss1[55] = "-----------------------------------------";
 
void main (int argc, char *argv[])
{
    setlocale(LC_ALL,"");
    void read_print_vxod(FILE*);  //Прототип функции чтения и вывода на экран исходного файла
    void read_print_vixod(FILE*);  //Прототип функции чтения и вывода на экран файла результата
    void job(FILE*, FILE*);
 
    FILE * filein;               //Указатель на исходный файл
    FILE * fileout;              //Указатель на файл результата
    char name_vxod[13];            //имя исходного файла
    
    if (argc==0)
    {
        printf ("Укажите имя выходного файла в командной строке: ");
        exit(-1);
    };
    
    printf("Введите имя входного файла: ");
    scanf("%s", name_vxod);
    if((filein = fopen(name_vxod,"r")) == NULL)//открытие исходного файла для чтения
    {                            
        printf("Файл %s не открыт.", name_vxod);
        getch();
        exit(-1);
    }
 
    if((fileout = fopen(argv[1],"w")) == NULL)   //открытие файла результата для записи
    {
        printf("Файл %s не открыт.", argv[1]);
        exit(-1);
    }
    
    read_print_vxod(filein);       //чтение и печать исходного файла
    fclose(filein);               //закрытие исходного файла
    _getch();
 
    if((filein = fopen(name_vxod,"r")) == NULL)   //повторное открытие исходного файла для чтения
    {
        printf("Файл %s не открыт.", name_vxod);
        exit(-1);
    }
    
    job(filein, fileout);        //Выполнение задания
    fclose(filein);              //закрытие исходного файла
    fclose(fileout);             //закрытие файла результата
 
    if((fileout = fopen(argv[1],"r")) == NULL)    //открытие файла результата для чтения
    {
        printf("Файл %s не открыт.", argv[1]);
        exit(-1);
    }
    
    read_print_vixod(fileout);       //чтение и печать выходного файла
    fclose(fileout);               //закрытие файла результата
    getch();
}
 
 
void read_print_vixod (FILE*fileout) //функция чтения и вывода на экран файла результата
{
    struct vixod strvix;   
    printf("Выходной файл: \n");
    while (fscanf(fileout, "%s%f", strvix.name, strvix.min)!=EOF)  //Чтение структуры из файла результата
           printf("%s, %f", strvix.name, strvix.min); //вывод на экран
}
 
void read_print_vxod(FILE*filein)  //функция чтения и вывода на экран исходного файла 
{
    struct vxod str; 
    void shapka();               //Прототип функции печати шапки 1
    printf("Входной файл: \n");
    shapka();
    while (fscanf(filein, "%s%f%f%f%f",str.name, &str.god_1940, &str.god_1950, &str.god_1955, &str.god_1958) != EOF)  //Чтение структуры из исходного файла 
            printf("!%6s!%4.1f!%4.1f!%4.1f!%4.1f!\n", str.name, &str.god_1940, &str.god_1950, &str.god_1955, &str.god_1958); //вывод на экран
            printf("%s\n",ss1);
}
 
void shapka()                    //функция печати шапки 1
{
    printf("Показатели развития внутр. торговли СССР\n");   
    printf("%s", ss1);
    printf("!                   !  1940  !  1950  !  1955  !  1958  !\n");
    printf("%s", ss1);
}
 
void job (FILE * filein, FILE * fileout)
{
    struct vxod str;
    struct vixod strvix;
    fscanf(filein, "%s%f%f%f%f",str.name, &str.god_1940, &str.god_1950, &str.god_1955, &str.god_1958);
    strvix.min = ((str.god_1955-str.god_1940)*100)/str.god_1940;
    strcpy (strvix.name, str.name);
    strvix.absol_prirost = str.god_1955-str.god_1940;
    while (fscanf(filein, "%s%f%f%f%f",str.name, &str.god_1940, &str.god_1950, &str.god_1955, &str.god_1958)!=EOF)
    {
        if (((str.god_1955-str.god_1940)*100)/str.god_1940 < strvix.min)
        {
            strvix.min = ((str.god_1955-str.god_1940)*100)/str.god_1940;
            strcpy (strvix.name, str.name);
            strvix.absol_prirost = str.god_1955-str.god_1940;
        }
    }
    fprintf (fileout, "Минимальный прирост в процентах в 1955 по сравнению с 1940 был у %s и равен %f\n\n", strvix.name, strvix.min);
    fprintf (fileout, "А абсолютный прирост за период 1940-1950 у %s был равен %f", strvix.name, strvix.absol_prirost);
    fclose(fileout);
}
Yandex
Объявления
24.12.2011, 18:52     Странная ошибка в программе
Ответ Создать тему
Опции темы

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