현재 C언어로는 textattr이나 gotoxy같은 함수는 사용할 방법이 없나요?

bshi02의 이미지

아래는 옛날 터보C로 작성된 코드인데요 숫자 입력을 받으면 화폐단위를 출력하는 코드인데 호기심이 생겨서 한번 VS에서 실행해보고 싶었는데 문제가 ..옛날 터보C로 작성되어서 컴파일해보면 textattr,gotoxy같은 함수가 정의 되어 있지 않다고 나오네요. 아래의 코드를 vs등에서 컴파일해서 실행할 방법은 없을까요?

 
#include <conio.h>
#include <ctype.h>
#include <stdlib.h>
#include <string.h>
#include <Turboc.h>
#include <stdbool.h>
 
#define GETS_MAX_SIZE 128
#define MAXLONG 0x7fffffffL
#define MINLONG ((long)0x80000000L)
long getvalue (size_t width,char prefix);
void putvalue(long value,char prefix,boolean plussign);
char *strdel(char *s,const char *delstr);
#define reversevideo() textattr(0x70);
 
void main(void)
{
    long value;
    do{
        puts("Enter value:");
        reversevideo();
        cputs("|       |\r");
        gotoxy(15,wherey());
        value=getvalue(10,'$');
        normvideo();
        if(value!=MAXLONG&&value!=MINLONG)
        {
            cputs("\nInput value: ");
            putvalue(value,'$',true);
 
        }else if(value!=MINLONG)cputs("\nInput error!");
        cputs("\r\n\r\n");
 
 
 
    }while(value!=MINLONG);
}
long getvalue(size_t width,char prefix)
{
    char s[GETS_MAX_SIZE+2],*ps,*tempptr;
    long value,sign=1L;
    if(width>GETS_MAX_SIZE)return MAXLONG;
    s[0]=width+1;
    cgets(s);
    if(*(s+2)=='\0')return MINLONG;
    for(ps=s+2;isspace(*ps);ps++);
    if(*ps=='+')ps++;
    else if(*ps=='-')ps++,sign*=-1;
    if(*ps==prefix)ps++;
    for(tempptr=ps;tempptr!=NULL;)
        tempptr=strdel(tempptr,",");
    value=strtol(ps,&tempptr,10)*sign;
    if(*tempptr!='\0')return MAXLONG;
    else if(value!=0L)return value;
    else if(*ps++=='0'&&*ps=='\0')return 0;
    else return MAXLONG;
}
 
void putvalue(long value,char prefix,boolean plussign)
{
    char s[33],*ps;
    int len;
    ltoa(value,s,10);
    len=strlen(s);
    ps=s;
    if(*ps=='-')ps++,len--,putch('-');
        else if(plussign)putch('+');
    if(prefix!='\0')putch(prefix);
    for(;*ps;ps++)
        {
        putch(*ps);
        if(--len%3==0&&len!=0)putch(',');
        }
}
char* strdel(char* s,const char* delstr)
{
   char* start,*end;
   if((start=strstr(s,delstr))==NULL)return NULL;
   end=start+strlen(delstr);
   memcpy(start,end,strlen(s)-(end-s)+1)    ;
   return start;
}
라스코니의 이미지

윈도우 10에서 Turbo C를 쓸수 있는 turboc7(https://turboc-7-by-akki.software.informer.com/) 툴 프로젝트가 있는 것 같은데 참고해 보세요.

세벌의 이미지

bshi02의 이미지

https://turboc-7-by-akki.software.informer.com의 터보c를 설치해보니 dosbox에서 실행하는 프로그램이네요.
확실히 잘 되는데 역시나 30여년전의 터보C 라서 요즘의 VS나 코드블럭같은 IDE에 비해서 디버깅이 좀 불편하긴 하네요...

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.