易截截图软件、单文件、免安装、纯绿色、仅160KB
热门标签: c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 最新文章 :

在C和C++中把标准输出重定向到指定文件

C++的实现
#include<fstream>  
#include <iostream>
using namespace std;
int main()
{  
 ofstream logTest("foo.log");    
 streambuf *oldbuf = cout.rdbuf(logTest.rdbuf());   
  
 cout << "输出到标准输出,但实际输出到了foo.log文件中\n";    
 logTest << "输出到文件,虽然将cout重定向到了log,但不影响log本身的使用\n";   
  
  // 恢复流缓冲区    
  cout.rdbuf(oldbuf);
  cout << "输出到标准输出\n";  
  getchar();
}  
C的实现
#include <ios>
#include <iostream>
#include <fstream>
//若使用包含.h文件方式则编译报错
using namespace std;
void main()
{
    ofstream ofs("e:\\a.txt");
    streambuf *osb = cout.rdbuf(ofs.rdbuf( ......

读《C和指针》笔记摘要【5】

2010-04-09
第十四章   预处理器
1、#define 替换
在程序中扩展#define定义符号和宏时,需要涉及几个步骤;
①、在调用宏时,首先对参数进行检查,看看是否包含了任何由#define定义的符号,如果是,它们首先被替换;
②、替换文件随后被插入到程序中原来文件的位置,对于宏,参数名被他们的值替代;
③、最后,再次对结果文本进行扫描,看看它是否包含了由#define定义的符号,如果是,就重复上述处理过程;
2、宏参数和#define定义可以包含其他#define定义的符号,但是宏不可以出现递归;
3、#define PRINT( FORMAT, VALUE )  \
printf( "the value of "#VALUE" is "FORMAT" \n", VALUE )
4、宏与类型无关
5、下面的执行结果:
#define MAX( a, b )     ( (a) > (b) ? (a) : (b) )
z = MAX( x++, y++ );  (其中x = 5;y = 8)
结果:x = 6;y = 10;z = 9;
原因:z = ( (x++) > (y++) ? (x++) : (y++));
6、#undef  (预处理指令,用于移除一个宏定义)
7、条件编译:在编译一个程序时,如果我们可以选择某条语句或某组语句,进行翻译或者被忽略,常常显得很方便。只用于调 ......

用C socket http发送这段请求报文

HTTP分为请求行,请求头部以及请求内容
那个长度数字值就是请求内容的长度(字节为单位)
给一段例子你就基本明白了:
onst CString getString(int i)
{
    CString s;
    s.Format(_T("%d"), i);
    return s;
}
////////////////////////////////
CString cnt;
        CString psr;
        cnt.Append(_T("<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n"));
        cnt.Append(_T("<soap12:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-
instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"
xmlns:soap12=\"http://www.w3.org/2003/05/soap-envelope\">\r\n"));
        cnt.Append(_T("<soap12:Body>\r\n"));
        cnt.Append(_T("<CelsiusToFahrenheit xmlns= ......

C环境将变量定义到RAM绝对地址之上


//来源不详
1. 绝对宏:
在程序中,用“#include<absacc.h>”即可使用其中定义的宏来访问绝对地址,包括CBYTE、XBYTE、PWORD、DBYTE、CWORD、XWORD、PBYTE、DWORD
具体使用可看一看absacc.h便知,例如:
rval=CBYTE[0x0002];指向程序存贮器的0002h地址
rval=XWORD[0x0002];指向外RAM的0002h地址
2. _at_关键字
直接在数据定义后加上_at_ const即可,但是注意:
(1)绝对变量不能被初使化;
(2)bit型函数及变量不能用_at_指定。
例如:
idata struct link list _at_ 0x40;指定list结构从40h开始。
xdata char text[25b] _at_0xE000;指定text数组从0E000H开始
提示:如果外部绝对变量是I/O端口等可自行变化数据,需要使用volatile关键字进行描述,请参考absacc.h。
 
 
例:
比如,我想让数组myarr[0x30]的起始地址从物理地址0x00800开始,何如?  
   
  用指针显然不安全,   请教如何通过预编译指令或者RAM段配置来实现?
 
unsigned   char   xdata   mayarr[30]   _at_0x0800
......

自己动手写一个判断网址合法的C\C++的正则表达式程序

#include<stdio.h>
#include<regex.h>
int main(int argc, char** argv)
{
if(IsLegalPage("http://www.baidu.com"))
printf("该网页合法\n");
else printf("该网页不合法!!!\n");
return 0;
}
/* 函数说明:判断网页是否合法
* 输入参数:需要判断的网址
* 返回结果:网页是否合法(合法1,不合法0)
*/
int IsLegalPage(char* s_tmp)
{
char* pattern="(https?)://.*(\.cn|\.com|\.htm|\.html|\.aspx?|\.jsp|\.php|/|/#)$";
printf("pattern=%s\n",pattern);
int z=0;
regex_t reg;
regmatch_t pm[1];
z=regcomp(®,pattern,REG_EXTENDED|REG_ICASE);
z=regexec(®,s_tmp,1,pm,0);
if(z!=0)
return 0;
else
return 1;
regfree(®);
}
  ......

自己动手写一个判断网址合法的C\C++的正则表达式程序

#include<stdio.h>
#include<regex.h>
int main(int argc, char** argv)
{
if(IsLegalPage("http://www.baidu.com"))
printf("该网页合法\n");
else printf("该网页不合法!!!\n");
return 0;
}
/* 函数说明:判断网页是否合法
* 输入参数:需要判断的网址
* 返回结果:网页是否合法(合法1,不合法0)
*/
int IsLegalPage(char* s_tmp)
{
char* pattern="(https?)://.*(\.cn|\.com|\.htm|\.html|\.aspx?|\.jsp|\.php|/|/#)$";
printf("pattern=%s\n",pattern);
int z=0;
regex_t reg;
regmatch_t pm[1];
z=regcomp(®,pattern,REG_EXTENDED|REG_ICASE);
z=regexec(®,s_tmp,1,pm,0);
if(z!=0)
return 0;
else
return 1;
regfree(®);
}
  ......

C队列 输出杨辉三角


也是中软笔试的算法题,当时并不知道叫杨辉三角,唉。N年不用了,还得再拾起,为了那个梦。
#include <stdio.h>
void main()
{
    int a[50][50];
    int i,j,n;
    printf("Please input Number:");
    scanf("%d",&n);
    for (i=0;i<n;i++)
    {
        for (j=0;j<=i;j++)
        {
            if (j==0 ||j==i)
                a[i][j]=1;
            else
                a[i][j]=a[i-1][j-1]+a[i-1][j];
            printf("%5d",a[i][j]);
        }
&nbs ......
总记录数:40319; 总页数:6720; 每页6 条; 首页 上一页 [1892] [1893] [1894] [1895] 1896 [1897] [1898] [1899] [1900] [1901]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号