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

С++ под Linux

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

Найти ошибки в коде приложения - C++ Linux

16.01.2017, 22:49. Просмотров 317. Ответов 7
Метки нет (Все метки)

В ходе создания программы которая должна была запрашивать данные и записывать их в файл произошли такие вот проблемы :
1. Программа запрашивает только одну переменную;
2. Программа записывает в лог совсем не то-что нужно. Например ( 00b0 00 )

OS: Debian 8.
Программа :
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
#include <iostream> // for cout
#include <cstdio>   // for fwrite
#include <fstream>  // for read
using namespace std;
 
int main(){
///////////
int F_S; // first student
int S_S; // second student
int T_S; // third student
char COMBINE[] = { F_S, S_S, T_S };
///////////
 
    /* FILLING VARIABLES */
 
    cout << "Enter name and family of first student    :  ";
        cin >> F_S;
    cout << "Enter name and family of second student   :  ";
        cin >> S_S;
    cout << "Enter name and family of third student    :  ";
        cin >> T_S;
    cout << "\nRemember" << endl;
 
        /* WRITING IN FILE */
        FILE * OPEN_FILE;
        OPEN_FILE = fopen("log", "wb");
        fwrite(COMBINE, sizeof(char), sizeof(COMBINE), OPEN_FILE);
        fclose(OPEN_FILE);
 
    /* WRITING ON THE SERVER */
 
    return 1;
}
На сколько я понимаю, проблемма не в самой программе, ибо даже в программе с документации такая-же проблема.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.01.2017, 22:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти ошибки в коде приложения (C++ Linux):

Ошибки компиляции приложения с lib файлами - C++
Есть консольное приложение WIN32, в нем вызываются функции из lib файлов. Компилируются без проблем, а вот линковщик выдает...

Ошибки при компиляции приложения с MySql Connector - C++ Linux
Доброго времени суток! При компиляции приложения с MySql Connector возникает ошибка: undefined reference to...

Найти ошибки в коде и исправить эти ошибки (Наследование) - C++
Вот в общем 3 файла, изучаю наследование на примере односвязного и двусвязного списков: list.h (inline) #pragma once class list...

Найти ошибки в коде и исправить эти ошибки - C++ - C++
Судя по вываливающейся ошибки, идет двойное освобождение памяти. У самого не получается отловить откуда. A.h #pragma once ...

Найти ошибки в коде и исправить эти ошибки - C++
Есть у меня вот такой код: #include &lt;iostream&gt; using namespace std; class A{ private: int* a; size_t size_; ...

Найти ошибки в коде - C (СИ)
что я не правильно написал: #include &lt;math.h&gt; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; int arr1, arr2; int i, j =...

7
nimazzzy
Заблокирован
16.01.2017, 22:54 #2
Цитата Сообщение от invoms Посмотреть сообщение
char COMBINE[] = { F_S, S_S, T_S };
И чему на этом этапе равны F_S и прочие? Мусор же в массиве у тебя будет. Мусор же и будешь записывать в файл.
0
invoms
0 / 0 / 0
Регистрация: 16.01.2017
Сообщений: 3
16.01.2017, 22:59  [ТС] #3
Не понял. Почему мусор? За F_S ввожу любое имя - фамилию, например Daniil Bulkin. Остальные переменные вообще не запрашиваются, как я и говорил.
0
nimazzzy
Заблокирован
16.01.2017, 23:13 #4
Цитата Сообщение от invoms Посмотреть сообщение
За F_S ввожу любое имя - фамилию, например Daniil Bulkin
F_S у тебя вообще отдельная переменная, которая к тому же типа int. А ты в нее строку запихиваешь.
А так как, она отдельная переменная, то массиву COMBINE глубоко фиолетово, что в F_S там кто записывает. В нем мусор так и лежит.
0
drfaust
282 / 173 / 44
Регистрация: 02.10.2008
Сообщений: 679
Записей в блоге: 1
Завершенные тесты: 1
16.01.2017, 23:16 #5
И чему будет равен "Daniil Bulkin" если его присвоить целочисленному F_S?
Второе - в упор не вижу где инициализируется COMBINE осмысленными данными...
0
invoms
0 / 0 / 0
Регистрация: 16.01.2017
Сообщений: 3
16.01.2017, 23:24  [ТС] #6
Хм.. Строковая переменная - string ?

Добавлено через 1 минуту
Как правильно инициировать char ?
0
nimazzzy
Заблокирован
17.01.2017, 00:12 #7
Цитата Сообщение от invoms Посмотреть сообщение
Хм.. Строковая переменная - string ?
Или массив char.
Цитата Сообщение от invoms Посмотреть сообщение
Как правильно инициировать char ?
getline'ом
0
pizz333
3 / 3 / 2
Регистрация: 18.07.2012
Сообщений: 89
21.01.2017, 21:54 #8
Есть подозрение что из за того что программа завершается с ошибкой
C++
1
return 1;
она во первых может не скинуть весь буфер в файл, а во вторых поддерживаю всех людей которые высказались выше

быстренько накидал
Кликните здесь для просмотра всего текста

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <fstream>
 
using namespace std;
 
int main(){
    string F_S,S_S,T_S;
    cin >> F_S >> S_S >> T_S;
    ofstream fout("log");
    fout << F_S << ' ' << S_S << ' ' << T_S;
    fout.close();
    return 0;
}
0
21.01.2017, 21:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.01.2017, 21:54
Привет! Вот еще темы с ответами:

Найти ошибки в коде - Turbo Pascal
компилятор не ругается, но проблемы с диапозонами. вот код задачи) не пугайтесь) Program School; Uses Crt; Type ...

Найти ошибки в коде - C (СИ)
#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;ctype.h&gt; #include &lt;time.h&gt; #define _CRT_SECURE_NO_WARNINGS #define BUF 256 ...

Найти ошибки в коде - C (СИ)
Уважаемые программисты! Доброго времени суток. Я начинающий пользователь среды Си. И у меня уже начинаются проблемы с написанием кода....

Найти ошибки в коде - C#
string a = Console.ReadLine(); string words = a.Split('*', '=');//разбиваем на 2 слова int perevod1=...


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

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

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