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

Отображаются лишние символы при выводе массива символов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти сумму ряда с точностью http://www.cyberforum.ru/cpp-beginners/thread523304.html
Составить программу: найти сумму ряда с точностью E=10^-3, общий член которого: an=(2^n)/(n-1)!
C++ После столбца матрицы с номером K вставить столбец из единиц "Last row, which contains even elements:" << lastEvenRow + 1 #include <iostream> #include <iomanip> using namespace std; int lastEvenRow = -1; even = false; "Line N" мы этого всего не проходили как решить простым методом в виде #include <iostream.h> #include <math.h> http://www.cyberforum.ru/cpp-beginners/thread523289.html
C++ С++ и окна
Как в С++ рисовать окна ? какой язык лучше? если есть то киньте книгу об етом:) а то прога есть но в консоле не оч красива Добавлено через 31 секунду окна тоесть графический интерфейс... Добавлено через 34 минуты я так понимаю типу WinAPI??
Непонятна ошибка C++
Программа выдает совсем не то что надо, а исправить не как не получаеться. Помогите кто может. // telefon.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <iostream> #include <cstdio> #include <cstdlib> #include <string>
C++ В данном натуральном числе переставить цифры таким образом, чтобы получилось наименьшее число записанное этими же цифрами http://www.cyberforum.ru/cpp-beginners/thread523272.html
2. В данном натуральном числе переставить цифры таким образом, чтобы получилось наименьшее число записанное этими же цифрами.
C++ Изменение прав доступа у процессов. Привет всем хотелось бы узнать возможно ли с помощью C++ как-нибуть изменять права у запущенных процессов. Если да то каким образом. (если можно примеры) Особенно интересует установка/снятие Ring 0 прав, хотя бы до ring 1 или 2. подробнее

Показать сообщение отдельно
Султан
4 / 4 / 1
Регистрация: 11.03.2012
Сообщений: 114

Отображаются лишние символы при выводе массива символов - C++

20.03.2012, 20:20. Просмотров 730. Ответов 6
Метки (Все метки)

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
#include <iostream.h>
#include <string.h>          // для функций str*
///////////////////////////////////////////////////////////
class String
{
  protected:
    static const int SZ = 3;       // размер массива
    char str [ SZ ];         // массив для хранения строки
  public:
    // конструктор без параметров
    String ( )
      { str [ 0 ] = '\x0'; }
    // конструктор с одним параметром
    String ( char s [ ] )
      { strcpy ( str, s ); } // сохраняем строку в массиве
    // показ строки
    void display ( ) const
      {
      cout << str;
      }
    // перевод строки к обычному типу
    operator char* ( )
      { return str; }
 
    int givMax() const
    {
        return int(SZ);
    }
};
 
class Pstring:public String
{
    public:
        Pstring() : String() {}
        Pstring ( char s [ ] )
        {
            int dl = strlen(s);
            int max = givMax();
 
            char temp[SZ+1];
            if (dl<max) {
                strcpy ( str, s );
            }
            else
            {
                for (int i = 0; i < max; i++) {
                    temp[i] = s[i];
                }
                temp[max]='\0';
                strcpy(str,temp);
            }
        }
};
 
class Pstring2:public Pstring
{
public:
    Pstring2 () : Pstring () {}
    Pstring2( char s[]) : Pstring(s) {}
};
///////////////////////////////////////////////////////////
int main ( )
{
  wcout.imbue(locale(".866"));
 
  Pstring2 s1;                 // используем конструктор без параметров
 
  char xstr [ ] = "Hi!12345 "; // создаем обычную строку
 
  s1 = xstr;                 // неявно используем конструктор с одним параметром
 
  s1.display ( );            // показываем строку
 
  Pstring2 s2 = "123456789123456789123456789"; // снова используем конструктор с параметром
 
  cout << static_cast<char*>( s2 ); // используем оператор перевода типа
  cout << endl;
 
  system("pause");
  return 0;
}
отображается:
Hix*↕12
Для продолжения нажмите любую клавишу . . .

хотя должно только:
Hi12
Для продолжения нажмите любую клавишу . . .

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