コード例 #1
0
ファイル: console.c プロジェクト: endeavorchan/jos
static void _console_write_integer(int x, int base) {
    static char* characterLookup = "0123456789abcdef";
    
    int negative = 0;
    if (x < 0) {
        x = -x;
        negative = 1;
    }

    int length = 0;
    int temp = x;
    do {
        ++length;
    } while ((temp /= base));

    char buffer[length + 1];
    for (int i = length - 1; i >= 0; --i) {
        buffer[i] = characterLookup[x % base];
        x /= base;
    }
    buffer[length] = '\0';

    if (negative) {
        console_write_char('-');
    }

    console_write_str(buffer);
}
コード例 #2
0
ファイル: main.c プロジェクト: pykello/slice
main()
{
	char buf[64];
	while (1) {
		fgets(buf, 64, stdin);
		console_write_str(buf);
		console_flush();
	}

}
コード例 #3
0
ファイル: console.c プロジェクト: mcu786/NetioBootloader1284p
//------------------------------------------------------------------------------
void console_write_P (const char *Buffer,...)
{
	va_list ap;
	va_start (ap, Buffer);

	int format_flag;
	char str_buffer[20];
	char move = 0;
	char len, b;
	char by;
	char *ptr;

	//Ausgabe der Zeichen
    for(;;) {

		by = *Buffer++;
		if(by==0) break; // end of format string

		if (by == '%') {

			by = *Buffer++;

			while (isdigit(by)) {				// potential overflow of move
				move = by - '0' + move * 10;

 				by = *Buffer++;
			}

			switch (by) {
                case 's':
                    ptr = va_arg(ap,char *);
                    console_write_str(ptr);
                    break;
				case 'c':
					//Int to char
					format_flag = va_arg(ap,int);
					console_write_char (format_flag++);
					break;
				case 'i':
				case 'd':
					itoa(va_arg(ap,int), str_buffer,10);
					goto ConversionLoop;
				case 'u':
					utoa(va_arg(ap,unsigned int), str_buffer,10);
					goto ConversionLoop;
				case 'x':
					itoa(va_arg(ap,int), str_buffer,16);
					//****************************
					ConversionLoop:
					//****************************
					len = strlen (str_buffer);
					b = '0';
					while ( len < move ) {
					  console_write_char (b);
					  len++;
					}
					console_write_str (str_buffer);
					move = 0;
					break;
				} // switch
		} else