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

Знаки вопроса при записи кириллицы в файл - C++

Восстановить пароль Регистрация
 
Vadim_H
44 / 3 / 0
Регистрация: 09.07.2014
Сообщений: 37
20.08.2014, 16:28     Знаки вопроса при записи кириллицы в файл #1
Есть процедура,она передает значения в файл KDAN_Ksb.txt.Только вместо русских букв в файл вносятся знаки вопроса.Видел много подобных тем,но ничего не помогло.

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
void __fastcall TMain::R1_Button7Click(TObject *Sender)
{
TProgressBar* pb;
TButton* tb = (TButton*)Sender;
int tab = M_PageControl->ActivePageIndex;
/* TODO : протокол (подготовка)  */
 
switch(tab)
{
case 1:
 pb = R1_ProgressBar1;
break;
 
case 2:
break;
 
case 3:
 pb = R3_ProgressBar1;
break;
 
case 4:
 pb = R4_ProgressBar1;
break;
 
case 5:
break;
 
case 6:
break;
 
case 7:
 pb = R7_ProgressBar1;
 
 
break;
 
case 8:
 pb = R8_ProgressBar1;
 if(!prtcl_flag[tab-1])
 {
 
 /* создание файла результатов KDAN_kSB.TXT */
    stream=fopen("KDAN_kSB.TXT","w+t");
   if(stream){
 
   int i;
  for ( i= 0; i < R8_GroupBox1->ControlCount; i++)
      if(((TRadioButton*)R8_GroupBox1->Controls[i])->Checked) break;
 //setlocale(LC_ALL,"Russin_Russia.65001");
 //SetConsoleCP(1251);
 //SetConsoleOutputCP(1251);
 fwprintf(stream, L"%s\n", ((TRadioButton*)R8_GroupBox1->Controls[i])->Caption);
 fwprintf(stream, L"%s\n", R8_Edit1->Text.c_str());
 fwprintf(stream, L"%s\n", R8_Edit2->Text.c_str());
 fwprintf(stream, L"%s\n", R8_Edit3->Text.c_str());
 fwprintf(stream, L"%s\n", IntToStr(n));
 
    for (sechenie=1;sechenie<=n;sechenie++)
    {
    if(sechenie==n) li = ln;
    else li = l1+100*(sechenie-1);
    fprintf(stream, "%i %7.2f %7.2f %7.2f %7.2f\n",
    li, A1[0][sechenie], A2[0][sechenie],A3[0][sechenie],A4[0][sechenie]);
//     X[4][0][sechenie], X[5][0][sechenie],X[6][0][sechenie], X[7][0][sechenie]);
 
     }
    fprintf(stream, "\n%7.2f %7.2f %7.2f\n", // убран перевод строки - как в файле
     //B[0], B[1],B[2]
     X[1][0][1],X[2][0][1],X[3][0][1]);
    fprintf(stream, "\n%7.2f %7.2f %7.2f %7.2f %7.2f %7.2f\n",
     B7, B8,Bnko,Bnpo,Bpko,Bppo);
 
 
  fclose (stream);
  }
}
break;
}
 
 if(prtcl_flag[tab-1]) view_prtcls(tab);
 else {
  if(make_prtcls(tab, pb)) {tb->Caption = "Просмотр протокола";prtcl_flag[tab-1]=1;}
 }
 
 
 
 
}
Конкретно интересует вот этот участок кода
C++
1
2
3
4
5
fwprintf(stream, L"%s\n", ((TRadioButton*)R8_GroupBox1->Controls[i])->Caption);
 fwprintf(stream, L"%s\n", R8_Edit1->Text.c_str());
 fwprintf(stream, L"%s\n", R8_Edit2->Text.c_str());
 fwprintf(stream, L"%s\n", R8_Edit3->Text.c_str());
 fwprintf(stream, L"%s\n", IntToStr(n));
Кодировки везде где только можно выставил UTF-8
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Alex5
883 / 618 / 81
Регистрация: 12.04.2010
Сообщений: 1,552
20.08.2014, 17:45     Знаки вопроса при записи кириллицы в файл #2
Vadim_H, у Вас R8_Edit3->Text - это string или wstring?

Для создания unicode-файла можно так написать (варианты: ccs=UNICODE, ccs=UTF-8, ccs=UTF-16LE )
C++
1
2
    FILE* stream=fopen("name1.TXT","wt,ccs=UNICODE"); 
    FILE* stream =_wfopen( L"name2.txt",L"w,ccs=UNICODE");
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
20.08.2014, 17:53     Знаки вопроса при записи кириллицы в файл #3
Как вывести в файл строку wstring с кириллицей
Vadim_H
44 / 3 / 0
Регистрация: 09.07.2014
Сообщений: 37
21.08.2014, 08:13  [ТС]     Знаки вопроса при записи кириллицы в файл #4
Это по ходу string.Прога изначально не моя,это всего лишь кусок кода
Alex5
883 / 618 / 81
Регистрация: 12.04.2010
Сообщений: 1,552
22.08.2014, 11:33     Знаки вопроса при записи кириллицы в файл #5
Цитата Сообщение от Vadim_H Посмотреть сообщение
Это по ходу string
Для вывода string: либо printf( " %s " ... ), wprintf( L" %S " ... ). (Аналогично, для вывода в файл.)
C++
1
2
3
4
5
6
7
        string s = "abcdef";
 
        // wprintf,   %s - вывод wchar_t[]  
        // wprintf,   %S - вывод char[]  
        wprintf( L" wprintf() \n\n" );
        wprintf( L" string (format %%s ):  [%s] \n\n", s.c_str());  /* error  */
        wprintf( L" string (format %%S ):  [%S] \n\n", s.c_str());  // ok
Миниатюры
Знаки вопроса при записи кириллицы в файл  
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5549 / 2563 / 233
Регистрация: 01.11.2011
Сообщений: 6,337
Завершенные тесты: 1
25.08.2014, 09:21     Знаки вопроса при записи кириллицы в файл #6
Вот здесь вот прям конкретно про билдер даже есть: русские в консоли.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.08.2014, 10:01     Знаки вопроса при записи кириллицы в файл
Еще ссылки по теме:

C++ Дан текстовый файл. Перепишите его в выходной файл, удалив все знаки препинания
Переписать содержимое файла А в файл В, перенося при этом в конец каждой строки все входящие в нее знаки препинания C++
C++ Абракадабра при записи в файл и при чтении из него кириллицы

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

Или воспользуйтесь поиском по форуму:
Vadim_H
44 / 3 / 0
Регистрация: 09.07.2014
Сообщений: 37
25.08.2014, 10:01  [ТС]     Знаки вопроса при записи кириллицы в файл #7
Мне как раз нfдо было не в консоли.Решил проблему добавив
C++
1
Setlocale(LC_ALL,Russian_Russia.1251)
Yandex
Объявления
25.08.2014, 10:01     Знаки вопроса при записи кириллицы в файл
Ответ Создать тему
Опции темы

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