0 / 0 / 0
Регистрация: 25.07.2019
Сообщений: 49
1

Непонятные символы при выводе в консоль

26.10.2020, 13:04. Показов 1768. Ответов 1
Метки нет (Все метки)

Доброго времени суток, уважаемые форумчане! Решаю задачу по программированию. Суть задачи не важна, важно то как считать и вывести данные. Данные считываются с файла, поэтому я решил написать программу, чтобы узнать, те ли данные я получу.
В файле в 1 строке содержится 1 число N - количество строк. Дальше в файле расположены N строк по 2 числа в каждом. Я написал программу для считывания файла. вот код:
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
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <cstring>
#include <cctype>
using namespace std;
const int LIM = 1500;
 
int main() {
    char line1[LIM], line2[LIM], line[LIM], ch;
    //int freq[50];
    int i, j, k;
 
    //for (i = 0; i < 50; i++) { freq[i] = 0; }
 
    ifstream fin;
 
    fin.open("ANAGRAM.txt", ios_base::in);
    if (!fin.is_open()) {
        cout << "This file does not exist. Try again.\n";
        return 1;
    }
 
    fin >> ch;
    k = (int)(ch - 48);
 
    cout << k << endl;
 
    while (!fin.eof()) {
        fin.getline(line, LIM);
        j = 0;
        int len = strlen(line);
        for (i = 0; i < len; i++) {
            if (!isspace(line[i]))j++;
            else break;
        }
 
        strncpy_s(line1, line, j);
 
        for (i = j + 1; i < len; i++) {
            line2[i] = line[i];
        }
 
        int size1 = strlen(line1);
        int size2 = strlen(line2);
        
        for (i = 0; i < size1; i++)cout << line1[i];
        cout << "  ";
        for (i = 0; i < size2; i++)cout << line2[i];
        cout << endl;
    }
 
    fin.close();
    cout << "Program is completed succesefully!" << endl;
    system("pause");
    return 0;
}
Данные вроде получаю какие надо, но на консоль помимо нужных чисел выводятся огромое количество вот таких символов: ╠╠╠╠╠╠╠╠╠╠╠
И вот такие символы заполняют все пространство между числами и сообщением об успешном выполнении программы.
Подскажите пожалуйста, что это такое и как исправить
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.10.2020, 13:04
Ответы с готовыми решениями:

Непонятные символы при выводе
Я уже такую фигню много раз наблюдал типа если не поставить '\0' или убрать при выводе какие то...

При выводе массива выводятся лишние непонятные символы
Имеется массив vord из 10 символов. Ввожу несколько символов(например 4 символа) в этот массив....

Непонятные символы при выводе русских символов в консоли
Доброго времени суток, у меня возникла проблема. Когда я ввожу текст с клавиатуры, при выводе его...

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

1
Модератор
Эксперт CЭксперт С++
5104 / 4533 / 854
Регистрация: 07.10.2015
Сообщений: 9,463
27.10.2020, 16:36 2
NaughtyFox, хотя бы сделать следующее:
C++
24
25
26
    fin >> ch;
    k = (int) (ch - 48);
    fin.ignore(32767, '\n');
После ввода числа в потоке остается '\n', которой приводит к вводу пустой строки, которая не завершена терминальным нулем. Как результат, выводится мусор.
C++
40
41
42
43
        for (i = j + 1, j = 0; i < len; i++) {
            line2[j++] = line[i];
        }
        line2[j] = 0;
Две ошибки: индекс строки line2 и не закрытая нулем строка.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.10.2020, 16:36
Помогаю со студенческими работами здесь

Как убрать лишние символы при выводе в консоль списка файлов?
Поясните, пожалуйста. Собираю кроссплатформенные методы, для работы с файлами. Взял для разбора...

При выводе строки string в консоль, символы написанные кириллицей отображаются неправильно
Программа не работает как надо с кириллицей в строке типа string. Суть программы: определение...

Непонятные цифры при выводе
Делаю задачу по структурам. В условии задачи есть пункт, где нужно реализовать вывод данных. То...

Русские символы при выводе из файла на консоль без использования BufferedReader
Неправильно отображаются русские символы при выводе их из файла на консоль, либо при копировании из...

Непонятные символы вместо русских букв в выводе команды ipconfig
При выводе исполнении ipconfig &gt;&gt; ip.txt Выводится вся инфа но не на русском языке а на хз...

При выводе динамической матрицы выводятся непонятные цифры
данная программа считает суммы строк двумерного массива. но при выводе массива, который хранит...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru