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

С++ под Linux

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

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

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

Добавлено через 1 минуту
Как правильно инициировать char ?
nimazzzy
 Аватар для nimazzzy
494 / 450 / 118
Регистрация: 29.03.2016
Сообщений: 1,433
Завершенные тесты: 1
17.01.2017, 00:12     Найти ошибки в коде приложения #7
Цитата Сообщение от invoms Посмотреть сообщение
Хм.. Строковая переменная - string ?
Или массив char.
Цитата Сообщение от invoms Посмотреть сообщение
Как правильно инициировать char ?
getline'ом
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.01.2017, 21:54     Найти ошибки в коде приложения
Еще ссылки по теме:

C++ Linux Ошибки при компиляции приложения с MySql Connector
Ошибки в Hello World, ubuntu [решено] C++ Linux
исправить ошибки C++ Linux
Зависание приложения C++ Linux
Ошибки компиляции Cygwin C++ Linux

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

Или воспользуйтесь поиском по форуму:
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;
}
Yandex
Объявления
21.01.2017, 21:54     Найти ошибки в коде приложения
Ответ Создать тему
Опции темы

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