char

string, char*, int类型转换 [BCB]

我的未来我决定 提交于 2020-02-22 08:44:29
以下是常用的几种类型互相之间的转换 string 转 int .............................. char* 转 int #include <stdlib.h> int atoi(const char *nptr); long atol(const char *nptr); long long atoll(const char *nptr); long long atoq(const char *nptr); ................................................................... int 转 string 可以使用stringstream类(需要包含<sstream>头文件) int main() { stringstream ss; int i = 100; string str; ss << i; ss << str; //这时str中就是字符串"100". retturn 0; } ............................. char* 转 string string s(char *); 你的只能初始化,在不是初始化的地方最好还是用assign(). ............................................................

linux下解决conio.h的问题

让人想犯罪 __ 提交于 2020-02-22 03:54:20
原文: http://blog.sina.com.cn/s/blog_6a95e00b0100zqvf.html linux下没有conio.h的头文件,想要实现getch就无法实现,但是有办法可以代替 include <stdio.h> //#include <conio.h> void main(){ char ch; for(;;){ // system("stty -echo"); ch = getch(); if(ch==27) break; if(ch==13) continue; putch(ch); } } Linux实现conio.h中的getch()功能 在windows下写C程序时有时会用到conio.h这个头文件中的getch()功能,即读取键盘字符但是不显示出来(without echo) 后来发现含有conio.h的程序在linux无法编译通过,因为linux没有这个头文件,今天突然发现可以用其他方法代替,贴出来 //in windows include<stdio.h> include<conio.h> int mian(){ char c; printf("input a char:"); c=getch(); printf("You have inputed:%c \n",c); return 0; } //in linux include

c语言中#和##的用法

允我心安 提交于 2020-02-22 02:21:41
一、一般用法 我们使用#把宏参数变为一个字符串,用##把两个宏参数贴合在一起. 用法: #include<cstdio> #include<climits> using namespace std; #define STR(s) #s #define CONS(a,b) int(a##e##b) int main() { printf(STR(vck)); // 输出字符串"vck" printf("%d\n", CONS(2,3)); // 2e3 输出:2000 return 0; } 二、当宏参数是另一个宏的时候 需要注意的是凡宏定义里有用'#'或'##'的地方宏参数是不会再展开. 1, 非'#'和'##'的情况 #define TOW (2) #define MUL(a,b) (a*b) printf("%d*%d=%d\n", TOW, TOW, MUL(TOW,TOW)); 这行的宏会被展开为: printf("%d*%d=%d\n", (2), (2), ((2)*(2))); MUL里的参数TOW会被展开为(2). 2, 当有'#'或'##'的时候 #define A (2) #define STR(s) #s #define CONS(a,b) int(a##e##b) printf("int max: %s\n", STR(INT_MAX)); // INT

一次性搞清楚equals和hashCode

試著忘記壹切 提交于 2020-02-22 00:28:08
  在程序设计中,有很多的“公约”,遵守约定去实现你的代码,会让你避开很多坑,这些公约是前人总结出来的设计规范。   Object类是Java中的万类之祖,其中,equals和hashCode是2个非常重要的方法。   这2个方法总是被人放在一起讨论。最近在看集合框架,为了打基础,就决定把一些细枝末节清理掉。一次性搞清楚! 下面开始剖析。 public boolean equals(Object obj)   Object类中默认的实现方式是 : return this == obj 。那就是说,只有this 和 obj引用同一个对象,才会返回true。(如果我们没有重写equals方法,equals和==一样比较的都是内存地址,只是equals可以让我们重写。)   而我们往往需要用equals来判断 2个对象是否等价,而非验证他们的唯一性。这样我们在实现自己的类时,就要重写equals. 按照约定,equals要满足以下规则。 自反性 : x.equals(x) 一定是true 对null : x.equals(null) 一定是false 对称性 : x.equals(y) 和 y.equals(x)结果一致 传递性: a 和 b equals , b 和 c equals,那么 a 和 c也一定equals。 一致性: 在某个运行时期间

JAVA笔记(一)

前提是你 提交于 2020-02-21 22:30:27
类型转换问题 Long l=123123; 这样输出的 l 是123123 Long l1=123415143567; 这样会报错,因为后面没有加上L,将其确认为Long类型, 如果不加L,就会被系统默认为int类型,只有4字节,所以当数过大时就会出错,当后面加上L,就会有8字节,为Long类型 2.String 类型 单引号表示char类型,char类型间的 + 表示运算,加法 双引号表示string类型,string类型的 + 表示连接符号,即直接的拼接在一起 同理,如果是声明的 char c=’c’; string a=”123”; 这些变量使用的+ 也是对应的。String 类型 + char类型的话,就是连接成一个 新的 string类型 3.区分&与&&(逻辑) &,&&都是逻辑与,区别在于,&会将所有条件都运算一遍,而&&在运算到false时就会停止运算后面的条件。 |与||,。逻辑非,同理。 4.左移右移位运算符 5.Switch 表达式 只能是 byte 、short、 char、 int 、 枚举类型、 string类型. 也就是说 switch里面不能用比大小的方式去确定CASE,因为比大小是布尔类型,true、false。 6.无限循环之while Scanner scan=new Scanner(System.in); Int num1=0;// 定义变量

byte[]数组转换String和char[]转换String

元气小坏坏 提交于 2020-02-21 07:59:47
问题是出在使用rocketmq的时候,生产者产生消息,放在消息体,String.getBytes[], 然后在消费者使用, String.valueOf(Bytes[])d得到的是地址。 后来查看valueOf源码: 1 public static String valueOf(Object obj) { 2 return (obj == null) ? "null" : obj.toString(); 3 } 查看String.valueOf(char[]) 源码: public static String valueOf(char data[]) { return new String(data); } 所以返回字符串的值 如果是null对象返回字符串“null" 否则调用obj.toString 他的源码: 1 public String toString() { 2 return getClass().getName() + "@" + Integer.toHexString(hashCode()); 3 } 来源: https://www.cnblogs.com/pc-m/p/11079110.html

JAVA基础数据类型

那年仲夏 提交于 2020-02-21 07:29:05
1.整数类型 1) 在Java中,整数类型共有4种,它们有固定的表述范围和字段长度,且不受具体的操作系统的影响,保证了Java的跨平台性 2) Java语言中,整数有三种表现形式,分别是:    a. 十进制整数 ,如 120, -31, 0    b. 八进制整数 ,要求以0开头(注意这是数字0,不是字母o),如:012,    c. 十六进制整数 ,要求以0x开头(注意这是数字0,不是字母o),如: 0x12 3) Java语言中,默认的整数类型是int类型,声明long类型的时候,后面必须要加个l(字母L的小写,不是大写字母I,也不是数字1)或者L,建议使用大写L,防止和数字1,大写字母I混淆,如:30L, 30l 2.浮点类型 1) 与整数类型一样,同样有固定的表述范围和字段长度,且不受具体的操作系统的影响,保证了Java的跨平台性 2) Java语言中,浮点类型有两种表现形式,分别是:    a. 十进制数形式 , 如3.14    b. 科学计数法 ,如,3.14e2, 3.14e-2, -3.14E2 3) Java语言中,默认的浮点数类型是double,声明float类型的时候,后面必须添加字母f或者F,如3.14F,3.14f 3. 字符类型 1) 字符类型是用''单引号括起来的单个字符,例如char c = 'w'; char a = '中'; 2)

C++ Primer Plus 笔记第十三章

时光怂恿深爱的人放手 提交于 2020-02-21 05:47:21
类继承 本章内容:    is-a 关系的继承;    如何以公有方式从一个类派生出另一个类;    保护访问;    构造函数成员初始化列表;    向上和向下强制转换;    虚成员函数;    早期(静态)联编与晚期(动态)联编;    抽象基类;    纯虚函数;    何时及如何使用公有继承    面向对象编程的主要目的之一是提供可重用的代码;    C++类提供了更高层次的重用性,类库由类声明和实现构成,因为类组合了数据表示和类方法;    C++提供了比修改代码更好的方法来扩展和修改类——类继承; 13.1 一个简单的基类    从一个类派生出另一个类,原始类成为基类,继承类称为派生类;    程序清单13.1 tabtenn0.h  1 #ifndef TABTENN0_H_ 2 #define TABTENN0_H_ 3 4 class TableTennisPlayer 5 { 6 private: 7 enum {LIM = 20}; 8 char firstname[LIM]; 9 char lastname[LIM]; 10 bool hasTable; 11 public: 12 TableTennisPlayer(const char * fn = "none", const char * ln = "none", bool ht = false);

2020/2/20 端口绑定和域名解析

自闭症网瘾萝莉.ら 提交于 2020-02-21 04:19:48
端口绑定和域名解析 TCP服务器的同一个端口不能够启动、绑定两次;但UDP服务器可以,但客户端连接上以后,信息只能发送给最新绑定的那个服务器端口,相当于端口被重新绑定了。 域名解析函数 struct hostent{ char *h_name; //主机名 char **h_aliases; //别名 int h_addrtype; //协议类型 int h_length; //网络地址大小 char **h_addr_list; //指向网络地址的指针 }; #include <netdb.h> struct hostent *gethostent(void); struct hostent* gethostbyname(const char *hostname); void sethostent(int stayopen); void endhostent(void);//有get就有end,用于释放内存 查看/etc/hosts文件可以知道本机的IP和域名 利用gethostbyname解析域名 源代码 #include <netdb.h> #include <stdio.h> #include <stdlib.h> #include <memory.h> #include <arpa/inet.h> void out_addr(struct hostent *h) {

Oracle重做日志文件

让人想犯罪 __ 提交于 2020-02-20 16:48:05
http://blog.csdn.net/leshami/article/details/5749556 一、 Oracle中的几类日志文件 Redo log files -->联机重做日志 Archive log files -->归档日志 Alert log files -->告警日志 Trace files -->跟踪日志 user_dump_dest -->用户跟踪日志 backupground_dump_dest -->进程跟踪日志 二、联机重做日志的规划管理 1.联机重做日志 记录了数据的所有变化(DML,DDL或管理员对数据所作的结构性更改等)提供恢复机制(对于意外删除或宕机利用日志文件实现数据恢复)可以被分组管理 2.联机重做日志组 由一个或多个相同的联机日志文件组成一个联机重做日志组至少两个日志组,每组一个成员(建议每组两个成员,分散放开到不同的磁盘),由LGWR后台进程同时将日志内容写入到一个组的所有成员 LGWR的触发条件 在事务提交的时候(COMMIT) Redo Log Buffer 三分之一满 Redo Log Buffer 多于一兆的变化记录 在DBWn写入数据文件之前 3.联机重做日志成员 重做日志组内的每一个联机日志文件称为一个成员 一个组内的每一个成员具有相同的日志序列号(log sequence number),且成员的大小相同 每次日志切换时