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

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

Войти
Регистрация
Восстановить пароль
 
evolveUA
0 / 0 / 0
Регистрация: 05.12.2013
Сообщений: 29
#1

Программирование с использованием внешних файлов - C++

03.02.2014, 13:02. Просмотров 403. Ответов 9
Метки нет (Все метки)

Необходимо переделать данную программу, что бы "Путь и имя файла вводились с клавиатуры".
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
#include "stdafx.h"
#include <cstdio>
#include <Windows.h>
 
void main()
{
    srand(GetTickCount());
 
    FILE *file;
 
    int i, j;
    float rand_min, rand_max;
    float X[45], X_temp;
    int X_min = 0;
 
    printf_s("rand_min, rand_max: ");
    scanf_s("%f%f", &rand_min, &rand_max);
 
    for (i = 0; i < 45; i++)
    {
        X[i] = rand_min + (rand_max - rand_min) * rand() / RAND_MAX;
 
        if (X[i] < X[X_min])
            X_min = i;
    }
 
    fopen_s(&file, "result.txt", "w");
    fprintf_s(file, "X[%d] = %f - minimum\n", X_min, X[X_min]);
 
    for (i = 0; i < X_min + 1; i++)
    {
        fprintf_s(file, "%f\t", X[i]);
    }
 
    for (i = X_min + 1; i < 45; i++)
    {
        for (j = i + 1; j<45; ++j)
        if (X[j] > X[i])
        {
            X_temp = X[j];
            X[j] = X[i];
            X[i] = X_temp;
        }
 
        fprintf_s(file, "%f\t", X[i]);
    }
 
    fclose(file);
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.02.2014, 13:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Программирование с использованием внешних файлов (C++):

Обработка строковых данных с использованием внешних файлов - C++
Люди добрые, есть такая проблемка, в общем имеется текст: &quot;The Old Man and the Sea is the story of an epic struggle between an old, ...

Программирование с использованием файлов - C++
Помогите начинающему программисту: Распечатать анкетные данные студентов-отличников из интересующей вас группы ...

Программирование с использованием файлов - C++
#include &lt;iostream.h&gt; #include &lt;sstream&gt; #include &lt;conio.h&gt; FILE *fl; typedef struct { char Number; int Time; ...

Программирование с использованием файлов: список студентов - C++
Помогите, пожалуйста, решить задачу Написать программу формирования файла, содержащего данные из задания соответствующего номеру по...

Системное программирование. Последовательная обработка файлов с использованием отображения в память - C++
Не могу разобраться, почему программа выводит одно и то же. Как ни менял бы содержимое файлов, сами аргументы при запуске ч-з командную...

Касательно const и внешних файлов. - C++
Все мы знаем, что const объявленная в начале модуля...например как глобальная переменная, не дает возможности больше менять значение. Ну...

9
akaAxeL
66 / 66 / 30
Регистрация: 14.07.2013
Сообщений: 251
04.02.2014, 00:11 #2
C++
1
2
3
4
5
6
7
8
9
string dir;
string name;
cout << "Enter directory";
cin >> dir;
cout << "Enter name";
cin >> name;
dir += name;
ifstream ifs;
ifs.open(dir);
0
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
04.02.2014, 11:33 #3
Добавить первые 7 строчек кода akaAxeL, в начало вашей функции void main(), а 27 строчку вашего кода
C
1
fopen_s(&file, "result.txt", "w");
заменить на
C
1
fopen_s(&file, dir, "w");
0
evolveUA
0 / 0 / 0
Регистрация: 05.12.2013
Сообщений: 29
05.02.2014, 19:49  [ТС] #4
Я что-то не понимаю, вроде сделал по вашим рекомендациям, только Visual Studio не пропускает данный код!
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
#include "stdafx.h"
#include <cstdio>
#include <Windows.h>
#include <string>
#include <iostream>
 
void main()
{
    srand(GetTickCount());
 
    FILE *file;
 
    int i, j, dir;
    float rand_min, rand_max;
    float string, dir, name;
    float X[45], X_temp;
    int X_min = 0;
 
    string dir;
    string name;
    printf_s("Enter directory");
    scanf_s("%f", &dir);
    printf_s("Enter name");
    scanf_s("%f", &name);
    dir += name;
 
    printf_s("rand_min, rand_max: ");
    scanf_s("%f%f", &rand_min, &rand_max);
 
    for (i = 0; i < 45; i++)
    {
        X[i] = rand_min + (rand_max - rand_min) * rand() / RAND_MAX;
 
        if (X[i] < X[X_min])
            X_min = i;
    }
 
    fopen_s(&file, dir, "w");
    fprintf_s(file, "X[%d] = %f - minimum\n", X_min, X[X_min]);
 
    for (i = 0; i < X_min + 1; i++)
    {
        fprintf_s(file, "%f\t", X[i]);
    }
 
    for (i = X_min + 1; i < 45; i++)
    {
        for (j = i + 1; j<45; ++j)
        if (X[j] > X[i])
        {
            X_temp = X[j];
            X[j] = X[i];
            X[i] = X_temp;
        }
 
        fprintf_s(file, "%f\t", X[i]);
    }
    fclose(file);
}
0
zss
Модератор
Эксперт С++
6475 / 6038 / 1980
Регистрация: 18.12.2011
Сообщений: 15,637
Завершенные тесты: 1
05.02.2014, 20:02 #5
Кусок кода, связанный с библиотеками и объявлением переменных:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
//#include <iostream>
#include <string>
using namespace std;
void main()
{
    srand(GetTickCount());
    FILE *file;
    int i, j;
    float rand_min, rand_max;
    float X[45], X_temp;
    int X_min = 0;
    string dir;
    string name;
и еще одна строка
C++
1
    fopen_s(&file, dir.c_str(), "w");
0
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
05.02.2014, 20:12 #6
Цитата Сообщение от zss Посмотреть сообщение
и еще одна строка
Код C++
1
fopen_s(&file, dir.c_str(), "w");
моя ошибка в торопях писал . А вот с типами ТС действительно намудрил
0
evolveUA
0 / 0 / 0
Регистрация: 05.12.2013
Сообщений: 29
05.02.2014, 20:15  [ТС] #7
Я сделал через "char", но программа отказывается работать, подскажите, может что добавить?
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
#include "stdafx.h"
#include <cstdio>
#include <Windows.h>
 
void main()
{
    srand(GetTickCount());
 
    FILE *file;
 
    int i, j;
    float rand_min, rand_max;
    float file_name, file_adress;
    float X[45], X_temp;
    int X_min = 0;
 
    printf_s("rand_min, rand_max: ");
    scanf_s("%f%f", &rand_min, &rand_max);
 
    for (i = 0; i < 45; i++)
    {
        X[i] = rand_min + (rand_max - rand_min) * rand() / RAND_MAX;
 
        if (X[i] < X[X_min])
            X_min = i;
    }
 
    char [];
        fopen_s(FILE** pFile, const char *filename, const char *mode);
 
    fprintf_s(file, "X[%d] = %f - minimum\n", X_min, X[X_min]);
 
    for (i = 0; i < X_min + 1; i++)
    {
        fprintf_s(file, "%f\t", X[i]);
    }
 
    for (i = X_min + 1; i < 45; i++)
    {
        for (j = i + 1; j<45; ++j)
        if (X[j] > X[i])
        {
            X_temp = X[j];
            X[j] = X[i];
            X[i] = X_temp;
        }
 
        fprintf_s(file, "%f\t", X[i]);
    }
    fclose(file);
}
0
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
05.02.2014, 20:28 #8
Цитата Сообщение от evolveUA Посмотреть сообщение
сделал через "char", но программа отказывается работать, подскажите, может что добавить
Для начала пересмотрите код zss, из 7 поста. А то вы опять на те же грабли с размаху встали : полная путаница с типами переменных. а вот это
C++
1
fopen_s(FILE** pFile, const char *filename, const char *mode);
из серии
0
evolveUA
0 / 0 / 0
Регистрация: 05.12.2013
Сообщений: 29
05.02.2014, 20:59  [ТС] #9
Цитата Сообщение от mustimur Посмотреть сообщение
Для начала пересмотрите код zss, из 7 поста. А то вы опять на те же грабли с размаху встали : полная путаница с типами переменных. а вот это
C++
1
fopen_s(FILE** pFile, const char *filename, const char *mode);
из серии
В университете мы не проходили это, это дополнительное задание, которое нужно выполнить, я мучаюсь с ним уже довольно долго и не могу понять в чем траблы...
Я уже реально не знаю, что делать с ней.. То что вы мне посоветовали - мы будем проходить только на втором курсе...
0
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
05.02.2014, 21:49 #10
Цитата Сообщение от evolveUA Посмотреть сообщение
Я уже реально не знаю, что делать с ней.. То что вы мне посоветовали - мы будем проходить только на втором курсе...
В ряд ли, мы Ваш код подправить пытались, что с блеском сделалzss,
0
05.02.2014, 21:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.02.2014, 21:49
Привет! Вот еще темы с ответами:

Программирование с использованием классов. - C++
Помогите решить. Создать класс квадрат, член класса - длина стороны. Предусмотреть в классе методы вычисления и вывода сведений о...

Программирование с использованием строковых данных - C++
1. Дан текст. а) Подсчитать количество слов в данной строке; б) Подсчитать количество букв а в последнем слове данной строки; в) найти...

Программирование с использованием строковых данных. - C++
Привет ВСЕМ!!! Уважаемые модераторы и форумчане помогите пожалуйста в решении следующей задачки... Составить таблицу слов данного...

Программирование с использованием строковых данных - C++
Отредактировать заданное предложения текста, удаляя из него все слова с нечетными номерами и переворачивая слова с четными номерами....


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

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

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