读书人

打开text资料读取每一行显示到屏幕,碰

发布时间: 2013-06-26 14:29:32 作者: rapoo

打开text文件读取每一行显示到屏幕,碰到"$"换行而end结束怎实现
<旁白>;
  在很久很久以前$
在地球还没有形成之前$
太阳系还是一个尘埃组成的XXXX.....$

end;







-----------------------------------以上是对白
判断尖括号中的文字,作为单独一行
最好是C++配合DirectDraw
也可以用C语言的法子
[解决办法]

#include "stdafx.h"
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#define BUF_SIZE 1024
#define ADDR_LOG "D:\\2.txt"
#define MODE_LOG "r"
#define ERROR_MSG "the file is wrong"

int _tmain(int argc, _TCHAR* argv[])
{
FILE *log;
char buf[BUF_SIZE];
char TTL[2]="<";
char * temp;
char * temp1;
int* num;
log = fopen( ADDR_LOG , MODE_LOG );
if( log == NULL )
{
puts( ERROR_MSG );
exit( 1);
}

do
{
memset ( buf , 0 , BUF_SIZE );
fgets( buf , BUF_SIZE , log );
temp = strstr(buf, TTL);
if (temp == NULL)
{
temp1 = strstr(buf, "$");
if (temp1 == NULL)
{
printf(" ");
printf(buf);
printf("\n");
}
else
{
char *token = NULL;
token = strtok(buf, "$");
printf(" ");
printf(token);
printf("\n");
}
}
else
{
char *bufValue = NULL;
char *token = NULL;
token = strtok(temp, "<");

size_t len = strlen(token);
bufValue = (char *)malloc(sizeof(char)*(len+1));
memset(bufValue,0,len+1);
memcpy(bufValue,token,len);

char *token1 = NULL;
token1 = strtok(bufValue, ">");
printf(token1);
printf("\n");
}
}while( ! feof( log ) );
fclose( log );
printf("Press any key to exit :");
getch();
return 0;
}

[解决办法]
DirectDraw自己再处理,不简单的,而且你这样一定是写游戏,结合游戏引擎和Lua脚本来做吧,我在1楼就说过了。

引用:
Quote: 引用:

参考以下方法:

#include <stdio.h>



break;
default:
break;
}
}
fclose(file);

return 0;
}



Quote: 引用:

尖括号中的旁白2字显示在左上角第一行,然后每一段落都换行并且间隔2个字才开始显示.
让旁白2字比较突出位置(最靠左边)


怎么用DirectDraw显示?printf 我一般不用的

读书人网 >C++

热点推荐