C++初探

 

//string1.cpp
#include <iostream>
int main()
{
    using namespace std;
    char dog[4]={'d','o','g'}//这是char数组,也即字符数组
    char dog1[4]={'d','o','g','\0'}//这是字符串

    char sex[8];
    /*
    char sex[] 是不被允许的,必须给出字符数组的长度,用于编译器申请空间。如果要输入汉字,由于一个汉字占用两个字节,故字符串长度至少为2*n+1,n为汉字个数,+1是因为空字符。这里的8是数组长度,而不是最后一个元素的下标,最后一个元素是sex[7].
    */

    char sex1[]="man";
    /*
    字符串请用双引号括起,不能使用单引号。由于已经初始化,编译器会得出字符数组的长度,故可略去。
    */

    char state='T';//字符用单引号括起,单引号中只能有一个字符。
    cin>>sex;
    cout<<sex;
    return 0;
}

 1 //配置文件
 2 #include <iostream>
 3 #include <afx.h>
 4 #include <windows.h>
 5 int main()
 6 {
 7 using namespace std;
 8 
 9 CString StrName, StrTemp, path;
10 StrName = "jack";
11 path = "";
12 DWORD a = GetCurrentDirectory(MAX_PATH, path.GetBuffer(MAX_PATH));
13 //获取为当前路径字符串申请的空间大小(不包含结尾空字符),存入a中。
14 //如果MAX_PATHLENGTH长度不足以存储当前路径,则返回需要的字节数(包含结尾空字符)。path没有改变。
15 //如果你通过VS运行程序,那么当前路径是项目路径,而不是可执行程序所在路径。
16 //MAX_PATH是宏名,值为260,这个值用来存储路径够用了。当然GetBuffer()不会真的申请这么多空间,而是按需分配。
17 path.ReleaseBuffer();//用完GetBuffer后最好马上释放
18 path += "\\setting.ini";//添加配置文件名
19 
20 //写配置文件
21 WritePrivateProfileString("Student", "Name", StrName, path);
22 //Student是字段名,name是Student字段名下的键名,StrName是name的键值,path是配置文件的路径
23 
24 //读配置文件
25 DWORD value = GetPrivateProfileString("Student", "Name", "hhhh", StrTemp.GetBuffer(30), 30, path);
26 StrTemp.ReleaseBuffer();
27 cout << " return value is" << value << endl;
28 wcout << StrTemp.GetString() << endl;
29 wcout << path.GetString() << endl;
30 cout << a << endl;
31 
32 //获取当前程序完整路径
33 GetModuleFileName(NULL, path.GetBuffer(MAX_PATH), MAX_PATH);
34 //NULL表示返回当前模块的PathName,GetBuffer()返回执向缓存区的指针,也即path对象的首地址。MAX_PATH表示缓存区大小。
35 //GetModuleFileName负责把路径字符串装载到指针所指向的区域,指针是可以更改的,因此可以装载。
36 //返回值是路径字节数。
37 path.ReleaseBuffer();
38 path = path.Left(10);
39 wcout << path.GetString() << endl;
40 
41 MessageBox(NULL, "3", "return value is", 16);
42 
43 //cin.get();
44 return 0;
45 }

 

 
 

 

posted @ 2018-09-30 11:36  谷谷非鼠  阅读(177)  评论(0编辑  收藏  举报