VS2010使用教程(使用VS2010编写C语言程序)

提示:VS2010 可以在 XP、Win7 和 Win8 下完美运行,但在 Win10 下可能会有兼容性问题,使用 Win10 的读者建议安装 VS2015 或者 VS2017。

前面我们给出了一段完整的C语言代码,就是在显示器上输出“C语言中”,如下所示:

#include

int main()

{

puts("C语言");

return 0;

}

本节我们就来看看如何通过 VS2010 来运行这段代码。

1) 创建项目(Project)

在 VS2010 下开发程序首先要创建项目,不同类型的程序对应不同类型的项目,初学者应该从控制台程序学起。

打开 VS2010,在上方菜单栏中选择“文件 --> 新建 --> 项目”:

或者按下Ctrl+Shift+N组合键,都会弹出下面的对话框:

选择“Win32控制台应用程序”,填写好项目名称,选择好存储路径,点击“确定”按钮即可。

如果你安装的是英文版的 VS2010,那么对应的项目类型是“Win32 Console Application”。另外还要注意,项目名称和存储路径最好不要包含中文。

点击“确定”按钮后会弹出向导对话框:

点击“下一步”按钮,弹出新的对话框:

先取消“预编译头”,再勾选“空项目”,然后点击“完成”按钮就创建了一个新的项目。

感兴趣的读者可以打开 E 盘,会发现多了一个cDemo文件夹,这就是整个项目所在的文件夹。

2) 添加源文件

在“源文件”处右击鼠标,在弹出菜单中选择“添加 -> 新建项”,如下图所示:

或者按下Ctrl+Shift+A组合键,都会弹出添加源文件的对话框。如下图所示:

在“代码”分类中选择C++文件(.cpp),填写文件名,点击“添加”按钮就添加了一个新的源文件。

小小的提示:C++是在C语言的基础上进行的扩展,C++已经包含了C语言的所有内容,所以大部分的 IDE 只有创建C++文件的选项,没有创建C语言文件的选项。但是这并不影响使用,我们在填写源文件名称时把后缀改为.c即可,编译器会根据源文件的后缀来判断代码的种类。上图中,我们将源文件命名为hello.c。

3) 编写代码并生成程序

打开 hello.c,将本节开头的代码输入到 hello.c 中,上图是输入完成以后的效果。 注意:虽然可以将整段代码复制到编辑器,但是我还是强烈建议你手动输入,我敢保证你第一次输入代码会有各种各样的错误,只有把这些错误都纠正了,你才会进步。本教程后续章节还会给出很多示例代码,这些代码一定要手动输入,不要复制后运行成功了就万事大吉。

编译(Compile)

在上方菜单栏中点击“生成”按钮,会弹出一个子菜单,再点击“编译”按钮,就完成了 hello.c 源文件的编译工作。

或者直接按下Ctrl+F7组合键,也能够完成编译工作,这样更加便捷。

如果代码没有错误,会在下方的“输出窗口”中看到编译成功的提示:

编译完成后,打开项目目录(本教程中是 E:\cDemo\)下的 Debug 文件夹,会看到一个名为hello.obj的文件,这就是经过编译产生的中间文件,这种中间文件的专业称呼是目标文件(Object File)。在 VS 和 VC 下,目标文件的后缀都是.obj。

链接(Link)

在菜单栏中选择“项目 --> 仅用于项目 --> 仅链接 cDemo”,就完成了 hello.obj 的链接工作,如下图所示:

如果代码没有错误,会在下方的“输出窗口”中看到链接成功的提示:

本项目中只有一个目标文件,链接的作用是将 hello.obj 和系统组件(专业讲是静态链接库)结合起来,形成可执行文件。如果有多个目标文件,这些目标文件之间还要相互结合。 再次打开项目目录(本教程中是 E:\cDemo\)下的 Debug 文件夹,会看到一个名为cDemo.exe的文件,这就是最终生成的可执行文件,就是我们想要的结果。

双击 cDemo.exe 运行,并没有输出“C语言中文网”几个字,而是会看到一个黑色窗口一闪而过。这是因为,程序输出“C语言中文网”后就运行结束了,窗口会自动关闭,时间非常短暂,所以看不到输出结果,只能看到一个“黑影”。

对上面的代码稍作修改,让程序输出“C语言”后暂停下来:

#include

#include

int main()

{

puts("C语言");

system("pause");

return 0;

}

system(“pause”);语句的作用就是让程序暂停一下。注意代码开头部分还添加了#include 语句,否则system(“pause”);无效。

再次编译并链接,运行生成的 cDemo.exe,终于如愿以偿,看到输出结果了,如下图所示:

按下键盘上的任意一个键,程序就会关闭。

更加快捷的办法

我们把上面的步骤总结一下,可以发现一个完整的编程过程是: 编写源文件:这是编程的主要工作,我们要保证代码的语法100%正确,不能有任何差错; 编译:将源文件转换为目标文件; 链接:将目标文件和系统库组合在一起,转换为可执行文件; 运行:可以检验代码的正确性。

不过 VS 提供了一种更加快捷的方式,可以一键完成编译、链接、运行三个动作,点击菜单栏中的“运行”按钮,或者按下F5键就能做到这一点。

还有更实用的技巧 如果我们的代码中没有添加system(“pause”);暂停语句,点击“运行”按钮,或者按下F5键后程序依然会一闪而过,只能看到一个“黑影”。

如果想让程序自动暂停,可以按下Ctrl+F5组合键,这样程序就不会一闪而过了;换句话说,按下Ctrl+F5键,VS 会自动在程序的最后添加暂停语句。

现在我们已经了解了从编写代码到生成程序的整个过程,在以后的学习中,可以直接使用Ctrl+F5组合键了,不用再分步骤完成了,这样会更加方便和实用。

4) 总结

现在,你就可以将 cDemo.exe 分享给你的朋友了,告诉他们这是你编写的第一个C语言程序。虽然这个程序非常简单,但是你已经越过了第一道障碍,学会了如何编写代码,如何将代码生成可执行程序,这是一个完整的体验。

在本教程的基础部分,教大家编写的程序都是这样的“黑窗口”,与我们平时使用的软件不同,它们没有漂亮的界面,没有复杂的功能,只能看到一些文字,这就是控制台程序(Console Application),它与DOS非常相似,早期的计算机程序都是这样的。

控制台程序虽然看起来枯燥无趣,但是它非常简单,适合入门,能够让大家学会编程的基本知识;只有夯实基本功,才能开发出健壮的GUI(Graphical User Interface,图形用户界面)程序,也就是带界面的程序。

各位朋友。

? ? ? ?这是我的第一个CSDN上的博客。我将自己按照明日科技的书“C++从入门到精通”这本书上的第18章的图书管理程序进行了敲写;由于我的版本和书中版本有差异。导致部分代码不太能够实现。同时自己也在网上搜索学习了一些东西。当然主要还是按照书上的代码。因为我还只是个初学者。写这个是希望能够送给像我一样的初学者。希望能够对大家有帮助。

下面分别将代码进行分享。

1 book.h程序

#define NUM1 128 #define NUM2 50 class CBook { public: CBook(){} CBook(char* cName,char* clsbn,char* cPrice,char* cAuthor); ~CBook(){} public: char* GetName(); void SetName(char* cName); char* Getlsbn(); void Setlsbn(char* clsbn); char* GetPrice(); void SetPrice(char* cPrice); char* GetAuthor(); void SetAuthor(char* cAuthor); void WriteData(); void DeleteData(int iCount); void GetBookFromFile(int iCount); protected: char m_cName[NUM1]; char m_clsbn[NUM1]; char m_cPrice[NUM2]; char m_cAuthor[NUM2]; };

2. book.cpp代码

#include "StdAfx.h" #include #include #include #include #include #include #include"Book.h" using namespace std; CBook::CBook(char* cName,char* clsbn,char* cPrice,char* cAuthor) { ? strncpy_s(m_cName,cName,NUM1); ? strncpy_s(m_clsbn,clsbn,NUM1); ? strncpy_s(m_cPrice,cPrice,NUM2); ? strncpy_s(m_cAuthor,cAuthor,NUM2); } char* CBook::GetName() { ? ? return m_cName; } void CBook::SetName(char* cName) { ? ? ?strncpy_s(m_cName,cName,NUM1); } char* CBook::Getlsbn() { ? ?return m_clsbn; } void CBook::Setlsbn(char* clsbn) { ? ?strncpy_s(m_clsbn,clsbn,NUM1); } char* CBook::GetPrice() { ? ?return m_cPrice; } void CBook::SetPrice(char* cPrice) { ? ?strncpy_s(m_cPrice,cPrice,NUM2); } char* CBook::GetAuthor() { ? ?return m_cAuthor; } void CBook::SetAuthor(char* cAuthor) { ? ?strncpy_s(m_cAuthor,cAuthor,NUM2); } void CBook::WriteData() { ? ofstream ofile; ? www.sxzhongrui.com("book.dat",ios::binary|ios::app); ? try ? ? ?{ ? ? ? ? ofile.write(m_cName,NUM1); ofile.write(m_clsbn,NUM1); ofile.write(m_cPrice,NUM2); ofile.write(m_cAuthor,NUM2); ? ? ?} ? catch(...) ? ? ?{ throw"file error occured"; ofile.close(); ? ? ?} ? ofile.close(); } void CBook::DeleteData(int iCount) { ? ?long respos; ? ?int iDataCount=0; ? ?fstream file; ? ?fstream tmpfile; ? ?ofstream ofile; ? ?char cTempBuf[NUM1+NUM1+NUM2+NUM2]; ? ?www.sxzhongrui.com("book.dat",ios::binary|ios::in|ios::out|ios::trunc); ? ?file.seekg(0,ios::end); ? ?respos=file.tellg(); ? ?iDataCount=respos/(NUM1+NUM1+NUM2+NUM2); ? ?if(iCount<0&&iCount>iDataCount) ? ? ? ? { ? ? ? ? ?throw "input number error"; ? ? ? ? ?} ? ?else ? ? ? ? { file.seekg((iCount)*(NUM1+NUM1+NUM2+NUM2),ios::beg); for(int j=0;j<(iDataCount-iCount);j++) { memset(cTempBuf,0,NUM1+NUM1+NUM2+NUM2); www.sxzhongrui.com(cTempBuf,NUM1+NUM1+NUM2+NUM2); tmpfile.write(cTempBuf,NUM1+NUM1+NUM2+NUM2); } file.close(); tmpfile.seekg(0,ios::beg); www.sxzhongrui.com("book.dat"); ofile.seekp((iCount-1)*(NUM1+NUM1+NUM2+NUM2),ios::beg); for(int i=0;i<(iDataCount-iCount);i++) { ? ?memset(cTempBuf,0,NUM1+NUM1+NUM2+NUM2); www.sxzhongrui.com(cTempBuf,NUM1+NUM1+NUM2+NUM2); ofile.write(cTempBuf,NUM1+NUM1+NUM2+NUM2); } ? ? ? ? } ? ?tmpfile.close(); ? ?ofile.close(); ? ?remove("www.sxzhongrui.com"); } void CBook::GetBookFromFile(int iCount) { ? char cName[NUM1]; ? char clsbn[NUM1]; ? char cPrice[NUM2]; ? char cAuthor[NUM2]; ? ifstream ifile; ? www.sxzhongrui.com("book.dat",ios::binary); ? try ? ? ?{ ifile.seekg(iCount*(NUM1+NUM1+NUM2+NUM2),ios::beg); www.sxzhongrui.com(cName,NUM1); if(ifile.tellg()>0) strncpy(m_cName,cName,NUM1); www.sxzhongrui.com(cPrice,NUM2); if(ifile.tellg()>0) strncpy(m_clsbn,clsbn,NUM1); www.sxzhongrui.com(cAuthor,NUM2); if(ifile.tellg()>0) strncpy(m_cAuthor,cAuthor,NUM2); ? ? ? } ? catch(...) ? ? ?{ ? ? ? ? ?throw"file error occured"; ifile.close(); ? ? ?} ? ifile.close(); }

实现程序代码:

#include #include #include #include #include #include #include"Book.h" #include "StdAfx.h" #include #define CMD_COLS 80 #define CMD_LINES 25 using namespace std; void SetScreenGrid() ? ?//窗口显示; { ? ?char sysSetBuf[80]; ? ?//HANDLE hOut=GetStdHandle(STD_OUTPUT_HANDLE); ? ?//sprintf_s(sysSetBuf,"mode con: cols=%d",CMD_COLS,CMD_LINES); ? ?//system("mode con cols=30 lines=6");//注释用代码无法在vc2010中完成目标。 ? ?//SMALL_RECT rc={0,0,80,25}; ? ?//SetConsoleWindowInfo(hOut,true,&rc); ? ?system("color 04"); ? ?//system(sysSetBuf); } void SetsysCaption() { ? ? system("title Sample"); } void ClearScreen() { ? ? system("cls"); } void ShowWelcome() { ? ? ?for (int i=0;i<7;i++) ? ?{ ? ? ?cout<>inName; cout<<"输入ISBN"<>inlsdn; cout<<"输入价格"<>inPrice; cout<<"输入作者"<>inAuthor; CBook book(inName,inlsdn,inPrice,inAuthor); book.WriteData(); cout<<"Write Finish"<=1) ? ? ? ? bIndex=true; ? ?iPage=iDataCount/20+1; ? ?ClearScreen(); ? ?cout<<"共有记录:"<>iDelCount; ?CBook tmpbook; ?tmpbook.DeleteData(iDelCount); ?cout<<"Delete Finish"<

有关 这个显示窗口大小更改问题。可以在窗口生成后,鼠标右键点击标题栏,选择属性进行修改。不清楚的可以看下面的图。

原创vs2010(Visual Studio)创建c项目的具体操作步骤介绍

编辑:小安 来源:PC下载网时间:2019-07-15 17:11:09

一些工作与编程有关的可能都在使用vs2010(Visual Studio),那么你们知道vs2010(Visual Studio)是怎么创建c项目的吗?以下这篇文章内容就为你们带来了vs2010(Visual Studio)创建c项目的具体操作步骤介绍。

首先我们打开vs2010(Visual Studio)软件,然后开发工具。

接着点击“新建项目”,打开新建项目窗口。选择“Win32”->“Win32 控制台应用程序”。

再输入“项目名称”,点击”确定“按钮。

这时候我们点击”下一步“,选中”空项目“,点击”完成“按钮。

再点开刚才创建的项目。选中”源文件“,右键”添加“->”新建项“。

然后我们打开新建项窗口后,依次点击”Visual C++“->”C++文件“->”名称“->”添加“

编写测试程序。

最后测试程序编写完成后,执行测试程序,查看结果。

相信各位看完了上文讲述的vs2010(Visual Studio)创建c项目的具体操作步骤介绍,应该都学会了吧!

END

0条大神的评论

发表评论