Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 21.05.2013
Сообщений: 29

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

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

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

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

Проблема: если исходный файл имеет кодировку unicode, то текст не форматирует и не записывает в файл. Количество слов тоже не считает. Если исходный файл имеет любую другую кодировку (ANSI или UTF), то выкидывает при чтении из файла. Запускаю отладку в Visual Studio - запускается и завершается с кодом 0. То есть не выкидывает. Но форматированный текст не появляется в выходном файле. А запускаю из консоли - выкидывает.
Помогите разобраться. Исходники в приложенном файле. Пишу в Visual Studio 2010 Express.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.05.2013, 15:58
Ответы с готовыми решениями:

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

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

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

26
245 / 246 / 38
Регистрация: 08.04.2013
Сообщений: 927
21.05.2013, 16:02
niks255, а код можно?
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
21.05.2013, 16:02
Цитата Сообщение от niks255 Посмотреть сообщение
Исходники в приложенном файле.
И где он?
0
1 / 1 / 0
Регистрация: 21.05.2013
Сообщений: 29
21.05.2013, 16:18  [ТС]
Цитата Сообщение от alsav22 Посмотреть сообщение
И где он?
Странно, вроде загрузил файл... щас повторю.
Вот, держите.
Вложения
Тип файла: 7z Task 7.7.7z (1.51 Мб, 5 просмотров)
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
21.05.2013, 16:59
Эта функция, что должна вернуть?
C++
1
int SearchNextWord(const char*, const int);
Добавлено через 4 минуты
Цитата Сообщение от niks255 Посмотреть сообщение
2. Форматирует каждую строку по ширине
Каким образом?

Добавлено через 1 минуту
Не знаю, правильно ли работает, но если дописать:
C++
1
2
3
4
5
6
7
8
9
10
11
12
int SearchNextWord(const char* pline, const int curpos)
 
{
    int i = curpos;
    while(pline[i] != ' ')
    {
        if (pline[i] == '\n')
        return 0;
    }
    while (pline[i] == ' ' && pline[i+1] == ' ') i++;
    return i;
}
то вылетов нет.
Миниатюры
Собранное приложение завершается с ошибкой  
1
1 / 1 / 0
Регистрация: 21.05.2013
Сообщений: 29
21.05.2013, 17:07  [ТС]
Функция должна возвращать номер позиции, с которой начинается следующее слово в строке pline. А если достигнут конец строки, то 0. curpos - позиция с которой начинается поиск.
Форматировать должна выравнивая текст слева и справа путем добавления пробелов между соседними словами. А еще в отступе с левой стороны страницы на margin позиций. Результирующий текст должен находиться в позициях margin+1 ... margin+max_line.
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
21.05.2013, 17:12
Вылет был из-за того, что возврата не было, о чём студия предупреждала (что возврат ни при всех путях выполнения).
1
1 / 1 / 0
Регистрация: 21.05.2013
Сообщений: 29
21.05.2013, 17:15  [ТС]
Вроде разобрался. Функция int SearchNextWord должна вот так выглядеть:

int SearchNextWord(const char* pline, const int curpos)

C++
1
2
3
4
5
6
7
8
9
10
{
    int i = curpos;
    while(pline[i] != ' '){
        if (pline[i] == '\n') return 0;
        i++;
    }
    while (pline[i] == ' ' && pline[i+1] == ' ') i++;
    return i+1;
 
}
Теперь другая проблема. Читает из входного файла только если он имеет кодировку ANSI. Можно сделать чтобы читал и юникод и UTF? Иначе вывод крокозябрами. Во входном файле русский текст.
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
21.05.2013, 17:28
Цитата Сообщение от niks255 Посмотреть сообщение
Можно сделать чтобы читал и юникод и UTF?
Вот, есть такой код. Разбирайтесь:
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
#include <iostream>
#include <fstream>
#include <Windows.h>
using namespace std;
 
int main()
{
    setlocale(0, ".1251"); //включили кодировку.
    //SetConsoleCP (1251); 
    //SetConsoleOutputCP (1251); // или так.
    
    char buff[500];
    wchar_t wbuff[500];
 
    ifstream f("upload.txt");
    
    f.getline(buff, 500); // в буффер char из файла UTF-8.
    
    MultiByteToWideChar(CP_UTF8, 0, buff, 500, wbuff, 500); //из буфера char в буфер wchar_t .
    wcout.imbue(locale("rus_rus.866")); //включаем другую кодировку.
    //setlocale(0, "rus_rus.866"); // или так.
    wcout << wbuff << endl; // выводим содержимое буфера wchar_t
    
    setlocale(0, ".1251"); // вернули кодировку.
    
    system("pause");
    return 0;
}
1
1 / 1 / 0
Регистрация: 21.05.2013
Сообщений: 29
21.05.2013, 17:36  [ТС]
Всем спасибо, тему можно закрывать
0
1 / 1 / 0
Регистрация: 21.05.2013
Сообщений: 29
24.05.2013, 14:09  [ТС]
Цитата Сообщение от alsav22 Посмотреть сообщение
Вот, есть такой код. Разбирайтесь:
Что то не могу с этим кодом прошарить. Помогите знающие, хоть пендалем в нужное направление подтолкните.

Добавлено через 20 часов 41 минуту
Народ ну подскажите пожалуйста с тем кодом. Я его в отдельном проекте собрал и он не выводит на экран содержимое буфера. Написано только "Для продолжения нажмите любую клавишу".
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
24.05.2013, 16:34
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
#include <iostream>
#include <fstream>
#include <Windows.h>
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;
    
    futf_8.getline(buff_utf8, 500); // в буффер char из файла UTF-8.
    cout << "buff: " << buff_utf8 << endl;
    
    MultiByteToWideChar(CP_UTF8, 0, buff_utf8, 500, wbuff, 500); //из буфера char в буфер wchar_t .
    setlocale(0, "rus_rus.866"); // //включаем другую кодировку 
    wcout << "wbuff: " << wbuff << endl; // выводим содержимое буфера wchar_t
    cout << "buff_ansi: " << buff_ansi << endl;
    
    setlocale(0, ".1251"); // вернули кодировку.
    cout << endl;
    wcout << "wbuff: " << wbuff << endl; // выводим содержимое буфера wchar_t
    cout << "buff_ansi: " << buff_ansi << endl;
    
    system("pause");
    return 0;
}
Миниатюры
Собранное приложение завершается с ошибкой  
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
24.05.2013, 16:36
И так у меня работает:
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
#include <iostream>
#include <fstream>
#include <Windows.h>
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;
    
    futf_8.getline(buff_utf8, 500); // в буффер char из файла UTF-8.
    cout << "buff: " << buff_utf8 << endl;
    
    MultiByteToWideChar(CP_UTF8, 0, buff_utf8, 500, wbuff, 500); //из буфера char в буфер wchar_t .
    //setlocale(0, "rus_rus.866"); // //включаем другую кодировку 
    wcout << "wbuff: " << wbuff << endl; // выводим содержимое буфера wchar_t
    cout << "buff_ansi: " << buff_ansi << endl;
    
    system("pause");
    return 0;
}
Миниатюры
Собранное приложение завершается с ошибкой  
1
1 / 1 / 0
Регистрация: 21.05.2013
Сообщений: 29
24.05.2013, 16:38  [ТС]
alsav22,
Что то я на вашем скриншоте работы не вижу, она у вас крокозябры выводит
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
24.05.2013, 17:44
Цитата Сообщение от niks255 Посмотреть сообщение
alsav22,
Что то я на вашем скриншоте работы не вижу, она у вас крокозябры выводит
С кодом разберитесь, потом пишите. Кракозябры специально для вас сделаны, чтобы было видно, что выводится из файла до обработки, а что после.
1
1 / 1 / 0
Регистрация: 21.05.2013
Сообщений: 29
24.05.2013, 17:53  [ТС]
Цитата Сообщение от alsav22 Посмотреть сообщение
С кодом разберитесь, потом пишите. Кракозябры специально для вас сделаны, чтобы было видно, что выводится из файла до обработки, а что после.
ОК, беру ваш код, вставляю в проект, компилирую, создаю блокнотом файл с именем "UTF_8.txt" и кладу в папку со скомпилированным exe'шником. Запускаю его и вижу:
Миниатюры
Собранное приложение завершается с ошибкой  
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
24.05.2013, 18:18
Попробуйте с этим файлом.
Вложения
Тип файла: txt UTF_8.txt (27 байт, 5 просмотров)
1
1 / 1 / 0
Регистрация: 21.05.2013
Сообщений: 29
24.05.2013, 18:19  [ТС]
alsav22, А с вашим нормально. Что я делаю не так?
Вот мой файл
Вложения
Тип файла: txt UTF_8.txt (103 байт, 3 просмотров)
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
24.05.2013, 18:28
Мой файл не блокнотом делался. Есть у вас ещё какие-нибудь программы, где можно текстовый файл в UTF-8 сделать?
1
1 / 1 / 0
Регистрация: 21.05.2013
Сообщений: 29
24.05.2013, 18:30  [ТС]
Цитата Сообщение от alsav22 Посмотреть сообщение
Мой файл не блокнотом делался. Есть у вас ещё какие-нибудь программы, где можно текстовый файл в UTF-8 сделать?
Найду, только почему он блокнотовские не жует?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.05.2013, 18:30
Помогаю со студенческими работами здесь

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

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

GetMailslotInfo завершается с ошибкой
Здравствуйте! Продолжаю осваивать работу с почтовыми ящиками в Windows. Не знаю, может быть стоило выбрать именованный канал для передачи...

Выборка из БД по ID завершается с ошибкой
Появилась след проблема: есть таблица в БД назовем ее USER, в неи первичный ключ - CODE(varchar). В C# пытаюсь сделать следующее. Есть...

Запрос GET idHTTP завершается c ошибкой
Здравствуйте! Делаю программный доступ к интернет-ресурсу в С++ Builder 2009 c использованием компонента idHTTP. Сначала пробовал...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru