首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

打开text资料读取每一行显示到屏幕,碰到"$"换行而end结束怎实现

2013-06-26 
打开text文件读取每一行显示到屏幕,碰到$换行而end结束怎实现旁白  在很久很久以前$ 在地球还没有形

打开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 我一般不用的

热点排行