VC6.0下设置和获取程序相对路径和绝对路径
- 格式:docx
- 大小:14.43 KB
- 文档页数:3
c语言绝对路径和相对路径使用在C语言中,绝对路径和相对路径通常用于指定文件的位置或路径。
绝对路径指的是从根目录开始的完整文件路径,而相对路径指的是相对于当前工作目录的文件路径。
在使用绝对路径时,需要提供完整的路径信息,包括根目录、路径分隔符(在Windows中是反斜杠“\”,在Linux中是正斜杠“/”)以及文件名。
例如,Windows操作系统上的绝对路径可以是 "C:\folder\myfile.txt"。
相对路径是相对于当前工作目录的文件路径。
当前工作目录是指程序运行时所在的目录。
可以使用以下特殊符号来指定相对路径:1. ".":代表当前目录。
2. "..":代表上一级目录。
例如,假设当前工作目录是 "C:\folder",文件 "myfile.txt" 位于"C:\folder\subfolder" 目录下,则可以使用相对路径来表示这个文件,如下所示:1. "./subfolder/myfile.txt" or "subfolder/myfile.txt":使用 "./" 或不指定路径分隔符来表示当前目录。
2. "../subfolder/myfile.txt":使用 ".." 表示上一级目录。
注意,在使用相对路径时,要确保当前工作目录正确设置,否则可能无法找到文件。
在C语言中,可以使用文件操作函数如 fopen() 来打开文件。
在函数的参数中,可以将绝对路径或相对路径作为文件路径参数传入。
例如:```cFILE *file = fopen("C:\\folder\\myfile.txt", "r");```或```cFILE *file = fopen(".\\subfolder\\myfile.txt", "r");```以上示例分别使用了绝对路径和相对路径来打开文件。
你首先要打开VC6.0界面,一般用得较多的是Win32控制台应用程序(源程序,扩展名.cpp),步骤是:(先工程—后文件—编译—连接---运行)1,建立一个工程,“文件”——“新建”,出现下面界面:选择“Win32 Console Application”(控制台应用程序,左边倒数第三个),命名工程名称,选择保存位置,点击“确定”,进入下一步,看到如下提示界面:建立一个空工程,对应其他需要的你一可以建立别的工程;点击“完成”,之后:显示你创建的工程的信息。
2,再在有一个的工程的条件下,我们再建立一个源文件;“文件”——“新建”(快捷键Ctri+N),出现:建立源文件,选择“C++ Source ”,一般都是建立这种文件的(适用在当文件中适用)如果要建立头文件的话,选择“C/C++ Header File”,(适用在多文件工程中使用)命名,文件名称,点击“确定”,之后:进入编辑区,在主界面编写代码:如下编写完之后呢:可以按编译按钮调试程序,看看有没有错误,有的话改正,没有的话就可以再按连接按钮检查连接(多文件工程时常用,检查文件间是否正常连接),最后,点运行按钮,就可以运行了。
如果是您有代码如:cpp文件,或.h 文件,想添加都VC6.0里来测试的话,可以这样做:首先,要理解一下文件扩展名为:cpp和.h文件扩张名是.h,代表的是头文件,一般是书写一些函数原型,以及一些在整个程序中常用到的结构体,频繁使用的函数说明,定义等等;文件扩张名为,cpp的,是C++中的源文件,也是最常用到的文件,每建立一个工程都要至少一个源文件(至少要有一个函数入口——主函数main() ),包含了核心代码;建立与运行说明:(以VC 6.0编译器为例,其他编译器类似)首先,打开VC 6.0编译环境;在菜单栏——文件(的下拉菜单中选择“新建”),在弹出的选择窗口中,选择Win32 Console Application(控制台应用程序),在填写工程名称,选择一个程序保存路径,点击“完成”,查看工程信息。
vc6.0下载、安装、及环境变量配置Vc6.0下载地址/softdown/program/VC60sp6chs.rar粘贴到迅雷或者旋风中的新建任务中vc6.0的安装过程1.首先解压安装文件的压缩包,镜像iso文件可以用winrar解压;2.然后再选择安装的版本,VC6CN 表示的是中文版,VC6EN表示英文版。
3.打开VC6CN文件夹,其中有如下图标,鼠标双击。
4.如下图所示就是我们安装的第一步,单击下一步。
5.选择“接受协议”后单击下一步。
6.本软件属于破解版,故无需输入产品ID号码,直接单击下一步。
7.选择“安装visual c++6.0中文企业版(I)”,这就是我们要安装的程序,单击下一步。
8.安装位置自己改,单击下一步。
9.如下界面,单击“继续”,开始安装软件。
10.点击“确定”。
11.选择“是”,继续安装。
12.选择“typical”继续安装13.选择“ok”。
14.选择“确定”15.选择“确定”16.取消“安装MSDN”前面的勾号,选择“退出”。
17.选择“是”,取消MSDN的安装。
18.程序安装完毕,再电脑的“开始菜单”中,选择“所有程序”,在“Microsoft Visual C++ 6.0”目录中选择“Microsoft Visual C++ 6.0”就可以运行程序了。
也可以将这个图标发送到桌面快捷方式,这样就可以直接在桌面上运行程序。
配置环境变量想用CMD直接编译连接cpp形成exe文件,就像配置好jre后直接在DOS里运行java程序一样。
1、首先配置环境变量:在path中添加D:/Program Files(x86)/Microsoft Visual Studio /VC98/bin;D是我的VC的安装盘,你可以根据自己前边安装路径的修改但是现在在CMD里输入cl ***.cpp时,DOS里提示连CL的命令都不存在,原来在刚才路径的文件夹里少了一个文件mspdb60.dll为了证明这一点,可以点击X:/Program Files/Microsoft Visual Studio /VC98/bin 中的cl.exe,它会提示你缺少mspdb60.dll文件,建议重新安装。
vc++6.0 调试详细教程Step intoStep overStep outRun to cursorWatchVariablesRegistersMemoryStop DebugCall stackDisassemblyRestart Debugger2、调试的一般过程调试,就是在程序的运行过程的某一阶段观测程序的状态。
在一般情况下程序是连续运行的,所以我们必须使程序在某一地点停下来。
我们所做的第一项工作就是设立断点;其次再运行程序;当程序在设立断点处停下来时,利用各种工具观察程序的状态。
程序在断点停下来后,有时我们需要按我们的要求控制程序的运行,以进一步观测程序的流向。
下面我们依次来介绍断点的设置,如何控制程序的运行以及各种观察工具的利用。
3、设置断点在VC中,可以设置多种类型的断点,根据断点起作用的方式把这些断点分为三类:1、与位置有关的断点;2、与逻辑条件有关的断点3、与WINDOWS消息有关的断点。
主要介绍前面两种断点。
4、设置位置断点最简单的是设置一般位置断点:¡ 把光标移到你要设断点的位置,当然这一行必须包含一条有效语句的;¡ 然后按工具条上的add/remove breakpoint 按钮或按快捷键F9。
将会在屏幕上看到在这一行的左边出现一个红色的圆点表示这里设立了一个断点5、设置位置断点-图示6、设置逻辑断点有的时候可能不需要程序每次运行到这儿都停下来,而是在满足一定条件的情况下才停下来,这时就需要设置一种与位置有关的逻辑断点。
从EDIT 菜单中选中Breakpoints命令,这时Breakpoints对话框将会出现在屏幕上。
选中Breakpoint对话框中的Location标签,使Location页面弹出。
如下页图所示。
7、8、设置逻辑断点单击上页Condition按钮,弹出Breakpoint Condition对话框,在expression_r编辑框中写出你的逻辑表达式,最后按OK返回。
VC获取当前路径及程序名VC上或取当前路径有多种方法,最常用的是使用GetCurrentDirectory和GetModuleFileName函数,个中都有诸多注意事项,特别总结一下。
一、获取当前运行目录的绝对路径1、使用GetCurrentDirectory函数假设程序路径为D:\Test\tst.exe,执行GetCurrentDirectory函数char pBuf[MAX_PATH];GetCurrentDirectory(MAX_PATH,pBuf);pBuf="D:\Test"但是如果使用CFileDialog、CFile::Open等函数后,设置不当则会导致再次获取当前路径值改变。
所以,如要避免当前路径改变,如果使用CFileDialog,则要把在CFileDialog的dwFlags标志设置为OFN_NOCHANGEDIR。
如下:CFileDialog hFileDlg(false,NULL ,NULL,OFN_FILEMUSTEXIST | OFN_READONLY | OFN_PATHMUSTEXIST | OFN_NOCHANGEDIR,TEXT("Text Files (*.txt)|*.txt|All Files(*.*)|*.*|"),NULL);也可以,先执行GetCurrentDirectory把获取到目录路径保存下来,处理完成后,再次SetCurrentDirectory设置一下。
2、使用GetModuleFileNameCString strCurPath;GetModuleFileName(NULL,strCurPath.GetBuffer(MAX_PATH),MAX_PATH);int pos= strCurPath.ReverseFind(_T('\\'));strCurPath = strCurPath.Left(pos);输出(路径包括运行文件名):strCurPath="D:\Test\tst.exe"二、获取打开文件的完整路径通过对话框打开文件时,一般均需获取打开文件的完整路径,可使用CFileDialog的GetPathName函数,代码如下:CFileDialog hFileDlg(false,NULL ,NULL,OFN_FILEMUSTEXIST | OFN_READONLY | OFN_PATHMUSTEXIST | OFN_NOCHANGEDIR,TEXT("Text Files (*.txt)|*.txt|All Files(*.*)|*.*|"),NULL);if(hFileDlg.DoModal() == IDOK) {m_strEdtSrcFile = hFileDlg.GetPathName();UpdateData(FALSE);}三、获取当前运行程序名通过GetModuleFileName获取完整路径后,可以使用PathStripPath API函数解析路径,代码示例如下:/*#include "shlwapi.h"#pragma comment(lib, "shlwapi.lib ")*/TCHAR szPath2[] = TEXT("D:\\Test\\tst.exe");PathStripPath(szPath2);// Result: szPath2 ==tst.exeTCHAR szPath3[] = TEXT("D:\\Test\\Debug");PathStripPath(szPath3);// Result: szPath3 == DebugTCHAR szPath4[] = TEXT("D:\\Test\\Debug\\");PathStripPath(szPath4);// Result: szPath4 == Debug\TCHAR szPath5[] = TEXT("D:\\");PathStripPath(szPath5);// Result: szPath5 == D:\使用此函数要注意,并非只是提取文件名,如果它不能识别时,则会返回原始字符串(不做处理)。
VC 6.0简易教程1 安装1.1 下载VC6.0,中文版或英文版皆可,至于哪里找,我想你懂的1.1安装到相关目录中,建议D:\Program Files1.2 在程序开始界面可以看到VC6.02编写程序2.1点击VC图标,开始进入界面2.2进入平台后点击文件选项2.3 点击新建--文件—C/C++ Source File2.4开始编写程序,要求所有数据从input.txt读入,结果输出到output.txt中上述是简单的从Input.txt中读入数据,并保存在动态建立的数组a中,最后将数组元素逐个输出。
其中fin函数用于读入数据,fout函数用于输出数据。
2.5运行程序程序需要编译成机器码才可运行,因此先按编译键,如果没有出错再按运行键。
一般情况下初学者编写的程序很容易有些小错误,如编译完后在平台上显示:这里的1 error表示程序中存在1个错误,双击错误所在的第20行主函数中光标停在根据错误代码,可以看出是程序中缺少分号(注意错误内容error c2146: syntax error: missing “;” before identifier “fout”)在fout之前添加分号后改正错误运行后得到结果说明数据已经输出到output.txt.3 调试初学者遇到的问题大多是编译没有错误,但是运行结果与预期大相径庭。
这时就需要进入程序调试界面,查看变量变化情况,以确定程序中每个步骤按预定算法进行。
3.1 进入程序调试界面将光标停留在怀疑发生错误的地方,如本段程序中的int *a,点击断点设置键程序中的第一行会出现一个小红点这个红点是我们想要监测的可疑错误位置。
断点设置后,按键进入程序调试界面,如下:其中窗口主要用于控制程序运行。
窗口可用于监测变量变化情况。
3.2调试方法当前红色圆点中间有个黄色的箭号,说明目前程序运行到这个位置。
我们可以从watch窗口查看各个变量,如:说明a目前是空指针,而n是一个没有被赋值的整型变量。
vc++6.0改变默认路径后的设置可能很多人在安装VC 6.0后有过点击“Compile”或者“Build”后被出现的“Compiling... ,Error spawning cl.exe”错误提示给郁闷过。
很多人的选择是重装,实际上这个问题很多情况下是由于路径设置的问题引起的,“CL.exe”是VC使用真正的编译器(编译程序),其路径在“VC根目录\VC98\Bin”下面,你可以到相应的路径下找到这个应用程序。
因此问题可以按照以下方法解决:打开vc界面点击VC“TOOLS (工具)”—>“Option(选择)”—>“Directories(目录)”重新设置“Excutable Fils、Include Files、Library Files、Source Files”的路径。
很多情况可能就一个盘符的不同(例如你的VC装在C,但是这些路径全部在D),改过来就OK 了。
如果你是按照初始路径安装vc6.0的,路径应为:executatble files:C:\Program Files\Microsoft Visual Studio\Common\MSDev98\BinC:\Program Files\Microsoft Visual Studio\VC98\BINC:\Program Files\Microsoft Visual Studio\Common\TOOLS C:\Program Files\Microsoft Visual Studio\Common\TOOLS\WINNTinclude files:C:\Program Files\Microsoft Visual Studio\VC98\INCLUDEC:\Program Files\Microsoft Visual Studio\VC98\MFC\INCLUDEC:\Program Files\Microsoft Visual Studio\VC98\ATL\INCLUDElibrary files:C:\Program Files\Microsoft Visual Studio\VC98\LIBC:\Program Files\Microsoft Visual Studio\VC98\MFC\LIBsource files:C:\Program Files\Microsoft Visual Studio\VC98\MFC\SRCC:\Program Files\Microsoft Visual Studio\VC98\MFC\INCLUDEC:\Program Files\Microsoft Visual Studio\VC98\ATL\INCLUDEC:\Program Files\Microsoft Visual Studio\VC98\CRT\SRC如果你装在其他盘里,则仿照其路径变通就行(我就是装在D盘)。
c语言绝对路径和相对路径使用绝对路径和相对路径是在编写程序时经常用到的概念,它们用于指定文件或目录的位置。
下面我将为大家详细介绍绝对路径和相对路径的使用方法、区别以及在实际开发中的指导意义。
首先,我们来了解绝对路径。
绝对路径是指从文件系统的根目录开始,一直到目标文件或目录的完整路径。
在不同的操作系统中,根目录的表示方式是不同的。
在Windows系统中,根目录通常是以盘符(如C、D等)表示,例如"C:\Program Files\Java";而在Unix或Linux系统中,根目录用斜杠“/”表示,例如"/home/user/Documents"。
使用绝对路径可以确切地指定文件或目录的位置,不会受到当前工作目录的影响。
接下来,让我们了解相对路径。
相对路径是相对于当前工作目录来指定文件或目录的位置。
当前工作目录是指在运行程序时所处的目录。
相对路径可以简化文件或目录的路径表示,使得代码更加易读、易于维护。
相对路径可以包括两个符号:点(.)和点点(..)。
点表示当前目录,点点表示上一级目录。
例如,如果当前工作目录是"C:\Users\Jason",而我们需要访问"C:\Users\Jason\Documents\file.txt",则可以使用相对路径"Documents\file.txt"。
绝对路径和相对路径在使用上有着一些区别。
首先,绝对路径是一个完整的文件或目录路径,不受当前工作目录的影响。
而相对路径则是相对于当前工作目录的路径,可以简化路径表示。
其次,在不同的操作系统中,根目录的表示方式不同,因此绝对路径也会有所差异。
而相对路径在不同操作系统中通常是一致的,可以跨平台使用。
在实际开发中,正确使用绝对路径和相对路径对于程序的运行和文件的读写至关重要。
首先,在引用外部文件时,如果文件位于程序的同一目录下,可以使用相对路径简化路径表示,提高代码的可读性;如果文件位于其他目录下,使用绝对路径可以确保文件的准确访问。
VC6.0下设置和获取程序相对路径和绝对路径
1、在程序中用到CFileDialog另存文件或打开文件时,一般先获得程序当前路径(主程序路径),再加上文件名或其它文件夹,此时程序当前路径会发生变化。
(假设主程序路径为D:/Practice)
// 获取当前路径
char* strTemp;
strTemp = new char[MAX_PATH];
GetCurrentDirectory(MAX_PATH, strTemp);//(strTemp为D:/Practice)CString strCurrentPath(strTemp);
strCurrentPath = strCurrentPath + "//Data//GroupInfo";//(strCurrentP ath 为D:/Practice/Data/GroupInfo)
// 打开文件打开对话框
CFileDialog dlg(TRUE, "ini", "*.ini", OFN_HIDEREADONLY|OFN_OVERW RITEPROMPT, "ini Files(*.ini)", this);
dlg.m_ofn.lpstrInitialDir = strCurrentPath;
dlg.m_ofn.lpstrTitle = "读取分组";
if(dlg.DoModal() != IDOK) return;
// 获取文件的绝对路径
CString sFileName = dlg.GetPathName();//(sFileName 为D:/Practice/ Data/GroupInfo/XXX.ini)
2、如果在接下来的程序中需要从其它文件读取数据,而文件是以相对路径存储的,此时直接读取文件会发生错误。
#define GROUPINFOFILE ".//Data//GroupInfo//Incoming.ini"
nCount = ::GetPrivateProfileInt("GroupInfo", "Count", 0, GROUPINFOF ILE);
因为此时主程序路径已经变为D:/Practice/Data/GroupInfo,所以nCount 限值为0。
3、所以需要先设置主程序路径,再读取文件。
可以在上面"// 打开文件打开对话框"或是"// 获取文件的绝对路径"后重新设置主程序路径。
// 设置当前路径,否则下面从ini文件中读取数据时会找不到ini文件SetCurrentDirectory(strTemp);。