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

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

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

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

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

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

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

Проблема: если исходный файл имеет кодировку unicode, то текст не форматирует и не записывает в файл. Количество слов тоже не считает. Если исходный файл имеет любую другую кодировку (ANSI или UTF), то выкидывает при чтении из файла. Запускаю отладку в Visual Studio - запускается и завершается с кодом 0. То есть не выкидывает. Но форматированный текст не появляется в выходном файле. А запускаю из консоли - выкидывает.
Помогите разобраться. Исходники в приложенном файле. Пишу в Visual Studio 2010 Express.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2013, 15:58     Собранное приложение завершается с ошибкой
Посмотрите здесь:
Программа завершается с ошибкой Killed C++
Программа завершается с ошибкой, подскажите почему C++
Не прогружаются каскады haarcascade_frontalface_alt.xml в Visual Studio 2010. OpenCV. Завершается с ошибкой 1 C++
C++ Программа аварийно завершается с ошибкой "map/set iterators are incompatible"
C++ Вывести фамилию сборщика и общее количество деталей, собранное им за неделю
C++ Не завершается программа
C++ Программа не завершается
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.05.2013, 18:40     Собранное приложение завершается с ошибкой #21
Цитата Сообщение от niks255 Посмотреть сообщение
Найду, только почему он блокнотовские не жует?
Самому интересно. Если создать файл UTF-8 с помощью gedit, то файл получается на 1 байт больше, чем если блокнотом.
niks255
1 / 1 / 0
Регистрация: 21.05.2013
Сообщений: 29
24.05.2013, 18:43  [ТС]     Собранное приложение завершается с ошибкой #22
alsav22,
А, коллега, так вы линуксоид.
А мой файлик открывается в gedit нормально?
Помогите сделать чтобы из блокнота жевал, пожалуйста.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.05.2013, 20:54     Собранное приложение завершается с ошибкой #23
Цитата Сообщение от niks255 Посмотреть сообщение
alsav22,
А, коллега, так вы линуксоид.
С чего вы взяли? У меня win xp и студия.
Цитата Сообщение от niks255 Посмотреть сообщение
Помогите сделать чтобы из блокнота жевал, пожалуйста.
Тему создайте и спросите, может кто знает. Я - нет.

Добавлено через 1 час 54 минуты
Блокнот в начале текста BOM пишет, из-за этого и не работает. Использовать для создания текстовых файлов редакторы, в которых можно кодировать без BOM (Notepad++, gedit).
niks255
1 / 1 / 0
Регистрация: 21.05.2013
Сообщений: 29
24.05.2013, 22:34  [ТС]     Собранное приложение завершается с ошибкой #24
alsav22, А что такое ВОМ?
alsav22
5416 / 4812 / 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;
}
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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.05.2013, 15:46     Собранное приложение завершается с ошибкой
Еще ссылки по теме:
C++ Не завершается метод
C++ Программа сразу завершается
C++ программа завершается аварийно
Программа не завершается корректно C++
C++ Цикл не завершается при 2х условиях

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

Или воспользуйтесь поиском по форуму:
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
25.05.2013, 15:46     Собранное приложение завершается с ошибкой #27
Есть ВОМ, а есть BOM.
Yandex
Объявления
25.05.2013, 15:46     Собранное приложение завершается с ошибкой
Ответ Создать тему
Опции темы

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