2013-06-25 3 views
0
for(int i = 4 * scale; i > 0; i--) { 
    x = -1 * i + 6; 
    c = string(x, '/\\'); // Why Won't you work! It only prints the "\" no "/" 
    cout << "\\_" << c << "/\\" << c << "_/" << endl; 
} 

Вверху раздел моего кода. Мой вопрос в том, почему он печатает только символ \ и игнорирует /. Было бы очень полезно, если бы кто-то мог ответить на этот вопрос, и если вам нужна дополнительная информация, которую я, возможно, забыл оставить в этом посте, просто оставьте комментарий, и я добавлю его к сообщениюФункция строки C++ возвращает только некоторые символы

+6

Вы действительно не хотели использовать '' ', а не' ''? –

ответ

3

У вас не может быть более одного символа в символьной константе.

Компилятор, который вы используете, по-видимому, обрабатывает двухсимвольную константу как двухбайтовое целое число, где старший байт - символ /, а младший - символ \. Когда вы назначаете его символу, высшие байты теряются, как в обычном назначении int-to-char. Вот почему вы получаете только последнего персонажа.

+0

'более одного символа в символьной константе. ', Звучит как оксюморон для меня – Abhijit