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

С++ для начинающих

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

Собранное приложение завершается с ошибкой - C++

21.05.2013, 15:58. Просмотров 1099. Ответов 26
Метки нет (Все метки)

Здравствуйте. Подскажите пожалуйста новичку. Взял приложение из учебника, переписал в Visual Studio, собрал, а оно выкидывает. Приложение делает следующее:

1. Берет текст из файла unform.txt
2. Форматирует каждую строку по ширине
3. Выводит результат в файл formatd.txt
4. Подсчитывает количество слов в тексте и выводит на экран

Проблема: если исходный файл имеет кодировку unicode, то текст не форматирует и не записывает в файл. Количество слов тоже не считает. Если исходный файл имеет любую другую кодировку (ANSI или UTF), то выкидывает при чтении из файла. Запускаю отладку в Visual Studio - запускается и завершается с кодом 0. То есть не выкидывает. Но форматированный текст не появляется в выходном файле. А запускаю из консоли - выкидывает.
Помогите разобраться. Исходники в приложенном файле. Пишу в Visual Studio 2010 Express.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2013, 15:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Собранное приложение завершается с ошибкой (C++):

Программа завершается с ошибкой Killed - C++
Программа завершается с ошибкой Killed, когда я выделяю очень много динамической памяти, но меньше чем есть в наличии всей памяти. Как...

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

Не прогружаются каскады haarcascade_frontalface_alt.xml в Visual Studio 2010. OpenCV. Завершается с ошибкой 1 - C++
Все форумы перечитала, много вариантов испробовала, но результата никакого. Подскажите кто сталкивался с подобной проблемой. Код взят...

Программа аварийно завершается с ошибкой "map/set iterators are incompatible" - C++
Добрый день! Проблема такая: в s1 и s2 рандомно добавляю числа, хочу найти объединение этих множеств. Если использовать такой код, то все в...

Вывести фамилию сборщика и общее количество деталей, собранное им за неделю - C++
а)Создать файл , содержащий сведения о количестве изделий , собранных сборщиками цеха за неделю. Каждая запись содержит поля: фамилия...

Не завершается программа - C++
После ввода массива консоль не закрывается, почему? #include "stdafx.h" #include <fstream> #include <stdlib.h> #include <iomanip> ...

26
niks255
1 / 1 / 0
Регистрация: 21.05.2013
Сообщений: 29
24.05.2013, 17:53  [ТС] #16
Цитата Сообщение от alsav22 Посмотреть сообщение
С кодом разберитесь, потом пишите. Кракозябры специально для вас сделаны, чтобы было видно, что выводится из файла до обработки, а что после.
ОК, беру ваш код, вставляю в проект, компилирую, создаю блокнотом файл с именем "UTF_8.txt" и кладу в папку со скомпилированным exe'шником. Запускаю его и вижу:
0
Миниатюры
Собранное приложение завершается с ошибкой  
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.05.2013, 18:18 #17
Попробуйте с этим файлом.
1
Вложения
Тип файла: txt UTF_8.txt (27 байт, 4 просмотров)
niks255
1 / 1 / 0
Регистрация: 21.05.2013
Сообщений: 29
24.05.2013, 18:19  [ТС] #18
alsav22, А с вашим нормально. Что я делаю не так?
Вот мой файл
0
Вложения
Тип файла: txt UTF_8.txt (103 байт, 2 просмотров)
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.05.2013, 18:28 #19
Мой файл не блокнотом делался. Есть у вас ещё какие-нибудь программы, где можно текстовый файл в UTF-8 сделать?
1
niks255
1 / 1 / 0
Регистрация: 21.05.2013
Сообщений: 29
24.05.2013, 18:30  [ТС] #20
Цитата Сообщение от alsav22 Посмотреть сообщение
Мой файл не блокнотом делался. Есть у вас ещё какие-нибудь программы, где можно текстовый файл в UTF-8 сделать?
Найду, только почему он блокнотовские не жует?
0
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.05.2013, 18:40 #21
Цитата Сообщение от niks255 Посмотреть сообщение
Найду, только почему он блокнотовские не жует?
Самому интересно. Если создать файл UTF-8 с помощью gedit, то файл получается на 1 байт больше, чем если блокнотом.
1
niks255
1 / 1 / 0
Регистрация: 21.05.2013
Сообщений: 29
24.05.2013, 18:43  [ТС] #22
alsav22,
А, коллега, так вы линуксоид.
А мой файлик открывается в gedit нормально?
Помогите сделать чтобы из блокнота жевал, пожалуйста.
0
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.05.2013, 20:54 #23
Цитата Сообщение от niks255 Посмотреть сообщение
alsav22,
А, коллега, так вы линуксоид.
С чего вы взяли? У меня win xp и студия.
Цитата Сообщение от niks255 Посмотреть сообщение
Помогите сделать чтобы из блокнота жевал, пожалуйста.
Тему создайте и спросите, может кто знает. Я - нет.

Добавлено через 1 час 54 минуты
Блокнот в начале текста BOM пишет, из-за этого и не работает. Использовать для создания текстовых файлов редакторы, в которых можно кодировать без BOM (Notepad++, gedit).
1
niks255
1 / 1 / 0
Регистрация: 21.05.2013
Сообщений: 29
24.05.2013, 22:34  [ТС] #24
alsav22, А что такое ВОМ?
0
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
25.05.2013, 05:53 #25
Цитата Сообщение от niks255 Посмотреть сообщение
alsav22, А что такое ВОМ?
Google в помощь.
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
#include <iostream>
#include <fstream>
#include <Windows.h>
#include <clocale>
using namespace std;
 
int main()
{
    setlocale(0, ".1251"); //включили кодировку.
    
    char buff_utf8[500];
    char buff_ansi[500];
    wchar_t wbuff[500];
 
    ifstream futf_8("UTF_8.txt");
    ifstream fansi("ANSI.txt");
 
    fansi.getline(buff_ansi, 500);
    cout << "buff_ansi: " << buff_ansi << endl; // строка в ANSI
    
    // проверка на BOM
    string temp;
    char ch;
    for (int i = 0; i < 3; ++i)
    {
        futf_8.get(ch);
        temp += ch;
    }
    if ((unsigned char)temp[0] == 0xEF && (unsigned char)temp[1] == 0xBB && (unsigned char)temp[2] == 0xBF);
    else futf_8.seekg(0); // если BOM нет   
    
    futf_8.getline(buff_utf8, 500); // в буффер char из файла UTF-8.
    cout << "buff: " << buff_utf8 << endl; // строка в UTF-8 до обработки
    
    MultiByteToWideChar(CP_UTF8, 0, buff_utf8, 500, wbuff, 500); //из буфера char в буфер wchar_t
    
    setlocale(0, "rus_rus.866"); // //включаем другую кодировку 
    wcout << "wbuff: " << wbuff << endl; // строка в UTF-8 после обработки
    
    setlocale(0, ".1251"); //возвращаем кодировку.
    cout << "buff_ansi: " << buff_ansi << endl; // строка в ANSI
    
    system("pause");
    return 0;
}
2
niks255
1 / 1 / 0
Регистрация: 21.05.2013
Сообщений: 29
25.05.2013, 15:27  [ТС] #26
alsav22, Вал отбора мощности?
Для прикола https://www.google.ru/search?q=%D0%9...hrome&ie=UTF-8

Добавлено через 16 секунд
alsav22, Вал отбора мощности?
Для прикола https://www.google.ru/search?q=%D0%9...hrome&ie=UTF-8
0
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
25.05.2013, 15:46 #27
Есть ВОМ, а есть BOM.
0
25.05.2013, 15:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.05.2013, 15:46
Привет! Вот еще темы с ответами:

Не завершается метод - C++
По идее оператор return; должен завершить метод Turning(). Но через брейкпоинты я посмотрел что после выполнения return; он продолжает не...

Программа не завершается - C++
Здравствуйте! 1) Моя программа на первом же тесте превышает положенное время (она не долго работает, она просто не завершается)....

Программа сразу завершается - C++
Здравствуйте! Я написал программу с конфигурацией решения Release, при запуске exe-файла программа тут же закрывается, а то что она выводит...

Программа не завершается корректно - C++
Написал программу, определяющую наибольшее из двух введённых пользователем чисел. Решил усложнить её и завершить её только нажатия,...


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

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

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