Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
 Аватар для артист
50 / 35 / 21
Регистрация: 17.09.2014
Сообщений: 1,615

Как убрать все управляющие символы из wchar_t ?

20.11.2015, 17:01. Показов 4237. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Читаю все файлы в папке подряд (текстовые разумеется).
Записываю содержимое в другой файл.

Так вот, при чтении последней строки без переноса, строки слипаются.

Вот два файла:
1й
[1]1
[1]22
[1]333
2й
[2]1
[2]22
[2]333
Это склеивание их
[1]1
[1]22
[1]333[2]1
[2]22
[2]333

Пробовал так делать:
C
1
2
3
4
5
6
len = wcslen(buf);
 
if(len < 2) continue;
 
buf[len + 1] = '\n';
buf[len + 2] = '\r';//NULL;
Всё равно...
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.11.2015, 17:01
Ответы с готовыми решениями:

Как удалить управляющие символы?
Добрый день! При получении списка файлов с unix системы у меня, проходят управляющие символы терминала. Вот пример куска списка...

Как заменить управляющие символы в строке?
Всем здравствуйте. String s = &quot;asdfasdfa123sdf&quot;; s = StringReplace(s, &quot;a&quot;, &quot;\\&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll); ...

Как убрать все не нужные символы
Добрый день, нужно убрать все пробелы и переносы. Как только я не пробовал. import random import linecache ...

21
 Аватар для артист
50 / 35 / 21
Регистрация: 17.09.2014
Сообщений: 1,615
20.11.2015, 18:33  [ТС]
Студворк — интернет-сервис помощи студентам
Что - то не читает последнюю пустую строку...

Добавлено через 1 минуту
Ааа, вон оно что...

Добавлено через 6 минут
Неа, не работает корректно.

Всегда ставит перенос...

Добавлено через 1 минуту
А, не, работает, не то поставил ))
Спасибо огромное )
0
 Аватар для артист
50 / 35 / 21
Регистрация: 17.09.2014
Сообщений: 1,615
20.11.2015, 21:55  [ТС]
А ничего так получилось )



Кликните здесь для просмотра всего текста
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
#include <windows.h>
#include <iostream>
#include <fstream>
#include <string>
 
 
using namespace std;
int p;
 
inline void draw_progress_bar(unsigned int line, unsigned int numstr)
{
    int percents = (int)line * 100 / numstr;
    if(percents == p) return;
    p = percents;
 
    int half = percents / 2;
    cout << "\r[";
    for(int i = 0; i < half; ++i) putc('|', stdout);
    for(int i = 0; i < 50-half; ++i) putc(' ', stdout);
    cout << "] %" << percents;
    fflush(stdout);
}
int get_file_numstr(wchar_t * filename)
{
    unsigned int i = 1;
    FILE * file;
    if(_wfopen_s(&file, filename, L"r")) return 0;
    while(!feof(file))
    {
        if(fgetc(file) == '\n') i++;
    }
    fclose(file);
    return i;
}
int main()
{
    setlocale(LC_ALL, "Russian");
    
    WIN32_FIND_DATA winFileData;
    HANDLE hFile;
    FILE * file, * filemin, * filemax;
    
    wchar_t szPath[MAX_PATH];
    wchar_t szFile[MAX_PATH];
    wchar_t buf[128];
    wchar_t s[2];
    unsigned int numstr;
    unsigned int line;
    int len;
 
    if(!GetCurrentDirectory(sizeof(szPath), szPath)) 
    {
        wcout << L"Невозможно получить текущую папку" << endl;
        system("pause");
        return 0;
    }
    wcout << L"Текущая папка : " << szPath << endl << endl;
 
    lstrcat(szPath, L"\\*.lst");
 
    if((hFile = FindFirstFile(szPath, &winFileData)) == INVALID_HANDLE_VALUE)
    {
        wcout << L"Нет файлов в папке" << endl << endl;
        system("pause");
        return 0;
    }
    fopen_s(&filemin, "min.txt", "w");
    fopen_s(&filemax, "max.txt", "w");
 
    do
    {
        if(winFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) continue;
        if(winFileData.cFileName == L"min.txt" || winFileData.cFileName == L"max.txt") continue;
        
        numstr = get_file_numstr(winFileData.cFileName);
        
        if(_wfopen_s(&file, winFileData.cFileName, L"r"))
        {
            wcout << L"Невозможно открыть файл " << winFileData.cFileName << endl;
            continue;
        }
        wcout << L"Файл : " << winFileData.cFileName << endl << L"Строк: " << numstr << endl << endl;
 
        line = 0;
 
        while(++line <= numstr)
        {
            draw_progress_bar(line, numstr);
            
            fgetws(buf, sizeof(buf), file);
 
            len = wcslen(buf);
 
            if(len < 2) continue;
            
            s[0] = buf[len - 1];
 
            if(len > 7) fputws(buf, filemax);
            else fputws(buf, filemin);
        }
        fclose(file);
 
        cout << endl << endl;
        if(s[0] == '\n') continue;
            
        if(len > 7) fputws(L"\n", filemax);
        else fputws(L"\n", filemin);
    }
    while(FindNextFile(hFile, &winFileData));
 
    fclose(filemin);
    fclose(filemax);
    FindClose(hFile);
 
    system("pause");
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.11.2015, 21:55

Как убрать из строк все спциальные символы?
Всем привет! Подскажите пожалуйста, как выпилить из некого текста все спцсимволы. Оставить нужно только то, что обычно присутствует в...

Как убрать управляющие клавиши(закрытие, сворачивание, разворачивание) в консоли?
Очень важная тема

Как в строке убрать все символы до первого пробела (включительно)
Нужен простой экзешник, который будет переименовывать много файлов в папке. По общему принцыпу. Получая в массив строк пулл названий...

Широкие символы wchar_t wstring не хотят принимать русские символы
Собственно вопрос в шапке, вот примеры: std::wstring str = L&quot;блин комом&quot;; и такое: wchar_t stroka = L&quot;abcdefghijklmnopqrstuvwxyz...

Bilder требует чтобы функции работали с wchar_t. Как это убрать?
В Оконном приложении Bilder требует чтобы функции работали с wchar_t ! как это убрать? и char хватает


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

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Новые блоги и статьи
Книги по геймдизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru