最近做了一个简单的编辑程序,想在编写C,C++文件时,让关键字高亮显示。
哪位大侠能提供些思路,小弟感激不尽
哪位大侠能提供些思路,小弟感激不尽
解决方案 »
- 关于FillRgn的填充
- 为什么弹出的模式对话框会被父窗口遮住(没显示),但焦点在模式对话框上?按一次Alt+Tab 模式对话框才显示在父窗口前面。
- 关于学习VC界面的问题?
- 如何模拟鼠标的移动功能?谢谢
- 关于ATL中如何加入无模式对话框
- mp3格式问题
- 请问那里可以找到pbm格式的训练样本?
- 用Ellipse函数画圆
- CPropertyPage中的帮助按钮的ID是什么呢,请指点,因为我想屏蔽他的功能
- win 7如何用socket实现消息的收发和文件的传输
- VC+ODBC(用DynaSet)+Oracle 9i Lite 4.0中报错:message file is not loaded,请高手解决,可加分!
- 新手小问,关于图形函数!
给你一段读文件的例子,可以读出关键字,你在修改一下吧
#include <iostream.h>
#include <fstream.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>struct KeyWord
{
char keyword[20];
int count;
};
KeyWord KeyWordTable[]=
{
{"else",0},{"for",0},{"if",0},{"while",0}
};
int SeqSearch(KeyWord* tab,int n,char* word)
{
int i;
for(i=0;i<n;i++,tab++)
if(strcmp(word,tab->keyword)==0)
return i;
return -1;
}
int GetWord(ifstream& fin,char w[])
{
char c;
int i=0; while(fin.get(c)&&!isalpha(c))
; if(fin.eof())
return 0; w[i++]=c;
while(fin.get(c)&&(isalpha(c)||isdigit(c)))
w[i++]=c;
w[i]='\0';
return 1;
}
void main(void)
{
const int MAXWORD =50;
const int NKEYWORDS = sizeof(KeyWordTable)/sizeof(KeyWord);
int n;
char word[MAXWORD],c;
ifstream fin;
fin.open("SearchKeyWord.cpp",ios::in|ios::nocreate);
if(!fin)
{
cerr<< "Could not open file 'SearchKeyWord'"<<endl;
exit(1);
}
while(GetWord(fin,word))
if((n=SeqSearch(KeyWordTable,NKEYWORDS,word))!=-1)
KeyWordTable[n].count++;
for(n=0;n<NKEYWORDS;n++)
{
if(KeyWordTable[n].count>0)
{
cout<< KeyWordTable[n].count ;
cout<<" "<< KeyWordTable[n].keyword <<endl;
}
}
fin.close();
}
如果是C++,我想把其中的关键字改了就行了~
如果你需要,就发消息给我.