Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 08.11.2020
Сообщений: 144

Segmentation fault при чтении файлов

23.10.2022, 15:39. Показов 1637. Ответов 23
Метки с++ (Все метки)

Студворк — интернет-сервис помощи студентам
Код:
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
#include <iostream>
#include <fstream>
#include <string>
 
void defSector (int* sectoRing, int MAX_SECTOR, int &point){
    *sectoRing +=point;
    
    if(*sectoRing>MAX_SECTOR){
        *sectoRing = *sectoRing-MAX_SECTOR;
    }
}
 
void readindQuastion (int *sectoRing, std::string quastionAlone[13]){
    std::fstream(fileQ);
    fileQ.open("quastion.txt");
    if(!fileQ){
        std::cout<<"file is not found";
    }else{
    int count =0;
    char  quastion[128];
    if(fileQ){
        while(!fileQ.eof()){
            fileQ.getline(quastion, 128, '\0');
        quastionAlone[count]=quastion;
            count++;
        }
    }
  }
fileQ.close();
}
 
void readindAnswer (int *sectoRing, std::string answerAlone[13]){
    std::fstream(fileA);
    fileA.open("answer.txt");
    if(!fileA){
    std::cout<<"file is not found";
    }else{
        int count =0;
        char answer[128];
    if(fileA){
        while(!fileA.eof()){
            fileA.getline(answer, 128, '\0');
            answerAlone[count]=answer;
            count++;
        }
    }
  }
fileA.close();
}
int main(){
    
    std::string quastionAlone [13];
    std::string answerAlone [13];
 
    int sectoRing = 1;
    int MAX_SECTOR = 13;
    int point =1;
    
    int *secPtr = &sectoRing;
    
    defSector (&sectoRing, MAX_SECTOR, point);
    readindQuastion (&sectoRing, quastionAlone);
    readindAnswer (&sectoRing, answerAlone);
    
    
    std::cout<<quastionAlone[point]<<"\t"<<answerAlone[point]<<"\n";
    
    
 
}
выдает ошибку Segmentation fault
Функции readindAnswer и eadindQuastion должны перечитать из файлов в массивы. Подскажите, что я делаю не так
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.10.2022, 15:39
Ответы с готовыми решениями:

Segmentation fault при вызове метода
Собственно такое дело, имеется следующий код: Item* m_items; Player::Player() { ... memset(m_items, 0,...

Segmentation fault при работе со стеком
Господа, если не затруднит, помогите пожалуйста с этой проблемой: Код компилируется, запускается -- и сразу аварийно завершает работу....

Segmentation fault при наследовании класса
Доброго времени суток! Имею класс Initialise и класс Environment. В первом создаются экземпляры движка и прочие сопутствующие вещи....

23
 Аватар для Tanya2007
593 / 230 / 72
Регистрация: 13.05.2020
Сообщений: 412
25.10.2022, 22:28
Студворк — интернет-сервис помощи студентам
Если вам очень нужно использовать eof() , то надо помнить, что бит eof() потока чтения файла устанавливается после того, как были прочитаны какие-либо данные. Вначале надо считывать данные, а лишь потом проверять на eof().
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
13214 / 6847 / 1825
Регистрация: 18.10.2014
Сообщений: 17,333
25.10.2022, 22:57
Цитата Сообщение от Tanya2007 Посмотреть сообщение
то надо помнить, что бит eof() потока чтения файла устанавливается после того, как были прочитаны какие-либо данные.
Бит eof выставляется тогда, когда попытка чтения данных была прервана из-за неожиданно возникшего на пути конца файла. При этом выставление этого бита ничего не говорит о том, была ли попытка чтения успешной или безуспешной. Именно по этой причине никакого осмысленного использования бита eof в процессе чтения файла нет и быть не может и завязывание на проверку eof в таком контексте - всегда ошибка.

Цитата Сообщение от Tanya2007 Посмотреть сообщение
а лишь потом проверять на eof()
Нет, "проверять на eof()" тут не нужно вообще.

Успешность последней попытки чтения определяется битом fail. Именно он в такой ситуации и нужен. А eof тут совершено ни при чем.
0
0 / 0 / 0
Регистрация: 08.11.2020
Сообщений: 144
26.10.2022, 21:17  [ТС]
Странно другое:
https://replit.com/@AlexSklemin/xur#main.cpp здесь программа собирается и работает на данном этапе как задумывалось
а здесь:
https://github.com/alexeysklem... er/xur.cpp
выдает ошибку:
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
13214 / 6847 / 1825
Регистрация: 18.10.2014
Сообщений: 17,333
26.10.2022, 21:35
Цитата Сообщение от madman64 Посмотреть сообщение
а здесь:https://replit.com/@AlexSklemin/xur#main.cpp здесь программа собирается и работает на данном этапе как задумывалось
Случайно работает. Поведение не определено из-за вылета за пределы массива.

Цитата Сообщение от madman64 Посмотреть сообщение
а здесь:
https://github.com/alexeysklem... er/xur.cpp
выдает ошибку:
Нет, ничего подобного в этом коде нет. Код по ссылке прекрасно компилируется, но не работает вообще из-за уже разобранной ранее проблемы '\0'.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.10.2022, 21:35

Segmentation fault при использовании модуля <time.h>
Есть код time_t now; struct tm * ptr; static char tbuf; bzero(tbuf,64); time(&amp;now); ptr = localtime(&amp;now); strftime(tbuf, 64,...

C++ ошибка кода Segmentation fault при динамической памяти
помогите пожалуйста. задание такое: нужна программа которая хранит название страны с медалями и может добавлять новые страны, а если имя...

Ошибка выполнения Segmentation fault при открытии файла
Привет всем! почему не открывается файл, не понимаю что такое? ubuntu 16, qt creator 3.6.1 #include &lt;string&gt; #include...

При вводе данных в программу выходит ошибка Segmentation fault
В чем может быть ошибка? Заранее спасибо! #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; class MARSH { public:...

Ошибка "Segmentation fault" при организации дерева
Есть следующие функции Three сreateThree(Node **q) { if((*q)-&gt;p) { Three *one, *two; one =...


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

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Новые блоги и статьи
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2. Задача: Обеспечить запись документа в регистр сведений независимо от. . .
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется. Ну как вам?
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания источниках данных и элементов формы(текстовые поля и метки), опирается все это на технологию событий и мета. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru