Заблокирован
1

В файл записываются непонятные символы? В чем ошибка? И как ее можно исправить?

06.06.2017, 18:39. Показов 3089. Ответов 11
Метки нет (Все метки)

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
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <Windows.h>
#include <locale>
using namespace std;
const int n = 1;
struct person
{
char fio[10];
char dol[10];
int year;
int zar;
};
 
int main()
{
    setlocale (0,"");
    SetConsoleCP(866);
    SetConsoleOutputCP(866);
    person mas[n];
    FILE *f1;
    f1 = fopen("1.txt", "wt");    
    fprintf(f1,"Структура СОТРУДНИК:\n");
    for(int i=0;i<n;i++)
    {
        printf("\nВведите ФИО: ");
        cin>>mas[i].fio;
 
        printf("\nВведите должность: ");
        cin>>mas[i].dol;   
 
        printf("\nВведите год рождения: ");
        cin>>mas[i].year;
 
        printf("\nВведите зарплату: ");
        cin>>mas[i].zar;
    }
    fwrite(mas,sizeof(mas),1,f1);
    fclose(f1);
    system("pause");
    return 0;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.06.2017, 18:39
Ответы с готовыми решениями:

В файл записываются непонятные символы
Здравствуйте. Имеется функция записи в файл. int save(int *a, int *b) { FILE *fp; if ((fp...

В файл записываются непонятные символы
В файл 'KEK' выводит непонятные символы. Вроде что-то знал про то, что если что-то не сделать то...

Как исправить непонятные символы?
Всем привет. Недавно заметил, что в некоторых программах изредка встречаются непонятный...

Записываю вводимые с консоли символы в файл, но в файл записываются кракозябры
Вот код.Фаил создаётся,через cin записываю вводимые символы в консоле. Но в фаил почему-то...

11
nd2
3431 / 2810 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
06.06.2017, 18:57 2
Цитата Сообщение от anasttb Посмотреть сообщение
C++
1
2
SetConsoleCP(866); 
SetConsoleOutputCP(866);
C++
1
2
3
4
5
6
7
8
#include <windows.h>
 
int main()
{
  SetConsoleCP(1251);
  SetConsoleOutputCP(1251);
  ...
}
В свойствах консоли выбрать шрифт: Lucida Console.
Установка шрифта Lucida Console
0
Заблокирован
06.06.2017, 19:08  [ТС] 3
Ничего не изменилось, плюс ко всему консоль перестала видеть русский язык.
0
nd2
3431 / 2810 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
06.06.2017, 19:12 4
Цитата Сообщение от anasttb Посмотреть сообщение
Ничего не изменилось
Что сделал? Среда какая? ОС?

Добавлено через 1 минуту
Цитата Сообщение от anasttb Посмотреть сообщение
плюс ко всему консоль перестала видеть русский язык.
И как это выглядит?
0
Заблокирован
06.06.2017, 19:13  [ТС] 5
Среда: VS10 Express
ОС: W7
0
nd2
3431 / 2810 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
06.06.2017, 19:16 6
Цитата Сообщение от anasttb Посмотреть сообщение
Среда: VS10 Express
ОС: W7
100% работает, если сделать то, что предложено во 2 посте.
0
Заблокирован
06.06.2017, 19:16  [ТС] 7
Выглядит так
Миниатюры
В файл записываются непонятные символы? В чем ошибка? И как ее можно исправить?  
0
nd2
3431 / 2810 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
06.06.2017, 19:20 8
Цитата Сообщение от anasttb Посмотреть сообщение
Выглядит так
Это не сделано:
Цитата Сообщение от nd2 Посмотреть сообщение
В свойствах консоли выбрать шрифт: Lucida Console.
0
Заблокирован
06.06.2017, 19:27  [ТС] 9
По незнанию не там установила шрифт.
Теперь в консоли все хорошо. Спасибо. С данными в файле нет никаких изменений.
У меня есть предположения, что так как строка не динамическая, то пустые символы заполняются какими-либо значениями.
Не подскажите как исправить? Как сделать строку динамической?
0
nd2
3431 / 2810 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
06.06.2017, 19:32 10
Цитата Сообщение от anasttb Посмотреть сообщение
У меня есть предположения, что так как строка не динамическая, то пустые символы заполняются какими-либо значениями.
Не подскажите как исправить?
Так и должно быть при бинарной записи в файл. Бинарные файлы не предназначены для рассматривания в текстовых редакторах. Если не устраивает, то записывай поля структур в файл текстовыми методами.
0
с++
1282 / 523 / 225
Регистрация: 15.07.2015
Сообщений: 2,562
06.06.2017, 19:53 11
Цитата Сообщение от anasttb Посмотреть сообщение
что так как строка
проблема только в одном не инициализированые переменные заполняються мусором поэтому заранее нужно об этом помнить
плюс
C++
1
cin.get(mas[i].fio, 10);
и после этого добавить
C++
1
while(cin.get()!='\n')continue;
0
nd2
3431 / 2810 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
06.06.2017, 19:59 12
Цитата Сообщение от Antikl Посмотреть сообщение
проблема только в одном не инициализированые переменные заполняються мусором
Гед ты там увидел неинициализированные переменные?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.06.2017, 19:59
Помогаю со студенческими работами здесь

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

Не записываются символы в файл
не записывает в файл символы почему? #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; int main() {...

WriteFile, символы записываются в файл через пробел
ipnamefile = CreateFile(TEXT(&quot;C://Program Files//text.txt&quot;), GENERIC_READ | GENERIC_WRITE,...

В выходной фаил записываются вместе с ответом записываются каракули. Помогите исправить ошибку
#include &lt;iostream&gt; using namespace std; void funk (int n, int k) { ...

Выводятся непонятные символы В ФАЙЛ
Столкнулся с проблемой. Сначала при выводе в консоль была проблема, но поправил setlocale(LC_ALL,...

Непонятные символы при записи в файл
Доброго времени суток. Вот снова прошу о помощи гуру программирования. Код еще не дописан, но...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru