1 / 1 / 1
Регистрация: 30.10.2017
Сообщений: 34
1

Chsize, breakpoint

04.11.2017, 19:24. Показов 1561. Ответов 6
Метки нет (Все метки)

Здравствуйте, проблема. Visual Studio 2017 ставит breakpoint после chsize:
C++
1
2
3
4
5
6
7
8
9
10
            static bool first = true;
            static int fp = 0;
            if (first) {
                first = false;
                fp = open("0.txt", O_RDWR | O_CREAT, S_IREAD | S_IWRITE);
            }
            if (fp != 0) {
                _chsize_s(fp, 0); //X Без коммента с описанием проблемы
                close(fp);
            }
Весь код:
Хэдэр с функцией:

ПРОБЛЕМА: в том что если не закрывать окно программы, то на второй раз использования функции после ввода всех параметров программа ставит брэйкпоинт на _chsize_s.
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
#include "stdafx.h"
#include <stdio.h>
#include <fstream>
#include <iostream>
#include <string>
#include <io.h>
#include <stdlib.h>
#include <fcntl.h>
 
#pragma warning(disable : 4996)
 
using namespace std;
 
int RosmirStrok[2][10], k;
char MobileNumber[10];
 
void AddRecord() {
 
    string Surname;
    string Name;
 
    printf("\n\n--\n");
 
    printf("1.\n");
    cin >> Surname;
    RosmirStrok[0][k] = sizeof(Surname);
    printf("\n------------------------\n");
 
    printf("2.\n");
    cin >> Name;
    RosmirStrok[1][k] = sizeof(Name);
    printf("\n------------------------\n");
    printf("3.\n");
 
    bool Ready;
    do {
        for (int i = 0; i < 10; i++) {
            cin >> MobileNumber[i];
        }
 
        if ((strlen(MobileNumber) != 10))
            Ready = false;
        else
            Ready = true;
 
        if (Ready == true) {
            printf("\n");
        }
        else {
            printf("\n\n");
        }
    } while (Ready == false);
    printf("\n------------------------\n");
    
    
    bool b = true;
    do {
        printf("\n");
 
        int s;
        cin >> s;
 
        if (s == 1) {   
            char q[6];
            int k = 0;
            _itoa_s(k, q, 10);
            strcat_s(q, ".txt");
 
            cout << " ";
            cout << q;
 
            printf("\n------------------------\n");
            cout << "\n";
 
            static bool first = true;
            static int fp = 0;
            if (first) {
                first = false;
                fp = open("0.txt", O_RDWR | O_CREAT, S_IREAD | S_IWRITE);
            }
            if (fp != 0) {
                _chsize_s(fp, 0);
                close(fp);
            }
 
            ofstream file2(q, ios::app);
            file2 << " " << Surname;
            file2 << " " << Name << " ";
            file2 << MobileNumber;
            file2 << endl;
            file2.close();
        }
        else if (s == 2) {
            printf("\n\n");
        }
        else {
            printf("\n \n");
            b = false;
        }
    } while (b == false);
}
Мэйн:
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
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <ctime>
#include <cmath>
 
#include "AddRecord.h"
#include "FindName.h"
 
using namespace std;
 
int main()
{
         ...
    
    for (; ; ) {
        int n;
        cout << "" << endl;
        cout << "1 -->" << endl;
                ...
 
        bool Ok = true;
 
        do {
            cin >> n;
            switch (n) {
            case 1: {
                AddRecord(); // Вызов функции
                break;
            }
        ...
        } while (Ok == false);
    }
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.11.2017, 19:24
Ответы с готовыми решениями:

Функция chsize
Доброе время суток. Как можно изменить размер файла не используя функцию chsize(handle,...

Chsize, функция, не рабочий параметр
Здравствуйте, проблема: есть код функции и функции мэйна, основные элементы, (пробовал и снаружи...

Использование chsize, урезание файла до 0
Здравствуйте, у меня появилась проблема. Я новичок и по этому мне тяжело сходу освоить всю систему...

Stalin.exe has triggered a breakpoint
Здравствуйте! У меня возникла проблема, по которой я не могу найти решения в интернете....

6
7063 / 6074 / 2764
Регистрация: 14.04.2014
Сообщений: 26,086
04.11.2017, 22:30 2
Обнули fp после close().
1
1 / 1 / 1
Регистрация: 30.10.2017
Сообщений: 34
04.11.2017, 22:56  [ТС] 3
Цитата Сообщение от nmcf Посмотреть сообщение
Обнули fp после close().
Вот так?
C++
1
2
    close(fp);
        _chsize_s(fp, 0);
Добавлено через 8 минут
Не помогает, всё равно первый раз всё хорошо а на второй цикл всё плохо...
0
7063 / 6074 / 2764
Регистрация: 14.04.2014
Сообщений: 26,086
04.11.2017, 23:34 4
Лучший ответ Сообщение было отмечено _Sora_ как решение

Решение

Да почему так-то? Вот:
C++
1
fp = 0;
1
1 / 1 / 1
Регистрация: 30.10.2017
Сообщений: 34
05.11.2017, 00:21  [ТС] 5
Цитата Сообщение от nmcf Посмотреть сообщение
Да почему так-то? Вот:
C++Выделить код
1
fp = 0;
Спасибо большое) Всё работает.)
Прошу, не могли бы вы сказать почему нужно обнулить fp? После закрытия.
0
3452 / 2802 / 766
Регистрация: 25.03.2012
Сообщений: 10,228
Записей в блоге: 1
05.11.2017, 00:49 6
Цитата Сообщение от _Sora_ Посмотреть сообщение
Прошу, не могли бы вы сказать почему нужно обнулить fp? После закрытия.
потому что кто его обнулит если не ты? fclose лишь с файлом работает и fp в результате никак не обнулит.

Тебе надо отдельно хранить признак того, последний раз открывался файл или закрывался или ещё не открывался даже. Похоже, для этого ты и завёл свой static bool first? Зачем, если можно просто проверять fp на нулевое состояние?
C++
1
2
3
4
5
6
7
8
9
            static int fp = 0;
            if (!fp) {
                fp = open("0.txt", O_RDWR | O_CREAT, S_IREAD | S_IWRITE);
            }
            if (fp != 0) {
                _chsize_s(fp, 0);
                close(fp);
                fp=0;
            }
1
1 / 1 / 1
Регистрация: 30.10.2017
Сообщений: 34
05.11.2017, 01:04  [ТС] 7
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
потому что кто его обнулит если не ты? fclose лишь с файлом работает и fp в результате никак не обнулит.
Тебе надо отдельно хранить признак того, последний раз открывался файл или закрывался или ещё не открывался даже. Похоже, для этого ты и завёл свой static bool first? Зачем, если можно просто проверять fp на нулевое состояние?
C++Выделить код
1
2
3
4
5
6
7
8
9
* * * * * * static int fp = 0;
* * * * * * if (!fp) {
* * * * * * * * fp = open("0.txt", O_RDWR | O_CREAT, S_IREAD | S_IWRITE);
* * * * * * }
* * * * * * if (fp != 0) {
* * * * * * * * _chsize_s(fp, 0);
* * * * * * * * close(fp);
* * * * * * * * fp=0;
* * * * * * }
Спасиб)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.11.2017, 01:04

Ошибка .exe has triggered a breakpoint
вылетает, когда делаю delete, если delete стоит перед strcpy, то всё норм #include&lt;iostream&gt; ...

App.exe has triggered a breakpoint
Здравствуйте. Я пытаюсь создать класс Management для управления студентами. Реализую функцию...

HoughTransformV4.exe has triggered a breakpoint
Помогите=) стоит только попытаться применить любую операцию округления выдает такое сообщение: ...

.exe has triggered a breakpoint (умножение матриц)
Класс матриц. Выдает такую ошибку при попытке вызвать функцию умножения: CMatrix operator*(CMatrix...

Test.exe has triggered a breakpoint ошибка
Ошибка выполнения программы. Вроде ошибка при освобождении free(massZ). #include &lt;iostream&gt;...

Выдает ошибку Project_name.exe has triggered a breakpoint
При выводе результатов в конце программа выдает &quot;Project_name.exe has triggered a breakpoint.&quot; и...


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

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

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