在输出字符的时候怎样实现从右往左的输出?
如题。。
再附加一个问题,就是如何返回ESC的值?
谢谢!!
[解决办法]
long i=300000;
printf( " c ");
while(i--);
printf( " bc ");
while(i--);
printf( " abc ");
while(i--);
printf( " 123abc ");
这样可以不?
[解决办法]
在它前面加个‘\r’回车可以回到本行开头重新打字。不知楼主是否这个意思
[解决办法]
string str( "sfsd ");
copy(str.rbegin(), str.rend(), ostream_iterator <char> (cout, " "));
[解决办法]
\b
[解决办法]
#include <string>
#include <iostream>
using namespace std;
typedef string::iterator Ite;
char revertstr(string & aa)//把string从右往左输出并返回esc
{for (Ite i= aa.end() ;i != aa.begin();)
{i--;cout < <*i;}
cout < <*(aa.begin());
return 27;//返回esc因为esc的ASCII的值是27
}
int main()
{string aa= "imastudent! ";
revertstr(aa);
return 0;
}
[解决办法]
conio.h头文件中好像有个函数叫 gotoxy(),可以到指定的一个点输出
[解决办法]
#include "stdafx.h "
#include <windows.h>
#include <stdlib.h>
void PrintStringRightToLeft(const char* str);
int main(int argc, char* argv[])
{
char strOut[] = "Hello, I 'm from Right To Left ";
PrintStringRightToLeft(strOut);
}
void PrintStringRightToLeft(const char* str)
{
HANDLE hStdOut;
hStdOut = GetStdHandle( STD_OUTPUT_HANDLE );
CONSOLE_SCREEN_BUFFER_INFO csbi;
COORD coord;
COORD cursor;
GetConsoleScreenBufferInfo( hStdOut, &csbi );
coord.X = csbi.dwSize.X - 1;
coord.Y = csbi.dwCursorPosition.Y;
_TCHAR strOut[2]={0};
int numChars = strlen(str);
for (int i=0; i <numChars; ++i) {
GetConsoleScreenBufferInfo( hStdOut, &csbi );
coord.X = coord.X - 1; // chage x positioin
if ( coord.X <0) coord.X = csbi.dwSize.X - 1;
coord.Y = csbi.dwCursorPosition.Y; // don 't change y position
strOut[0] = str[i];
WriteConsoleOutputCharacter( hStdOut, strOut, 1, coord, 0);
}
}