Visual C# 2005从入门到精通第05章

合集下载

解决VisualC++编译器中混合.c文件时收到C1853预编译头错误的方法

解决VisualC++编译器中混合.c文件时收到C1853预编译头错误的方法

解决VisualC++编译器中混合.c文件时收到C1853预编译头错误的方法第一篇:解决Visual C++ 编译器中混合 .c 文件时收到 C1853 预编译头错误的方法解决Visual C++ 编译器中混合.c 文件时收到 C1853 预编译头错误的方法当Visual C++ 项目启用了预编译头(Precompiled header)功能时,如果项目中同时混合有.c 和.cpp 源文件,则可能收到 C1853 编译器错误:fatal error C1853: 'pjtname.pch' precompiled header file is from a previous version of the compiler, or the precompiled header is C++ and you are using it from C(or vice versa)(致命错误C1853: “filename.pch”预编译头文件来自编译器的早期版本,或者预编译头为C++ 而在C 中使用它(或相反))。

该错误是因为当项目中混合了.cpp 和.c 文件时,编译器会对它们采取不同的编译方式(主要是因为对函数声明的处理方式不同),因而不能共用一个预编译头文件。

在VC++ 中,默认的预编译头文件是针对 C++ 的(stdafx.h 和 stdafx.cpp),当然也可以创建针对 C 的预编译头。

有趣的是,在旧版的VC++ 中,这个错误的提示很具有误导性:fatal error C1853: 'xxx.pch' is not a precompiled header file created with this compiler.常常让人摸不着头脑。

应该说,在新版中的这个提示是有所改进的。

不过在网上搜索一番,对这个问题往往都是建议对整个项目取消预编译头的设置。

这显然不是一个好的解决方案。

《visualc2010入门教程》系列二:安装配置和首次使用vs2010

《visualc2010入门教程》系列二:安装配置和首次使用vs2010

Visual C++ 2010 入门教程》系列二:安装、配置和首次使用VS2010日期:2010.6.15 写在前面在我还在上学的时候,我选择了C++ ,最初我用VC6 作为我的IDE ,我看过很多本C++ 的教材,有的适合我,有的不适合我,其中有本叫《Visual C++ 2005 入门经典》的书帮了我不少的忙。

因为通常的C++教材都只会介绍C++的语法什么的,很少会告诉我们如何去编译、运行,告诉我们什么是控制台程序,什么事Win程序,什么是GUI程序,C++能干什么,VC和C++ 的区别是什么。

现在有很多的朋友应该也有这些问题吧?学C++ 用C++ 也有几年了,算不上熟悉,算是初窥门径吧,我想我应该做点什么帮助一下那些和曾经的我一样困惑的朋友,特别是学生朋友,告诉他们他们所困惑的问题的答案。

记得我学C++ 的时候,没有人教,有的时候也走了不少弯路,甚至连调试也不会,也不知道可以通过看调用堆栈看调用次序,还自己慢慢的去搜索,好傻啊。

接下来我会做个《Visual C++ 2010 入门教程》系列,用来帮助初学者。

刚开始学的时候是很痛苦的,这个我深有体会,特别是身边还没有人能够指导一二的。

内容主要涵盖在Windows 下面使用C++进行开发的常见内容,Visual Studio 2010 的使用,如何创建新项目,如何调试,如果配置项目属性等等,另外水平有限,其中难免有错误,希望大家谅解,如果大家有发 现问题还请务必及时指出来,否则误导了他人我就罪不容恕注意,本教程非 C++ 教程,不会教你 C++ ,只会教你如何使用 Visual C++ 2010 去练习去学习其它 C++教在使用 Visual C++ 2010 实践的时候如果遇到问题可以到这里来参考。

推荐《C++ Primer 沢《C++程序设计语言》《Visual VC 和 C++ 的那些事第二章 安装、配置和首次使用 VS2010章将帮助大家安装 Visual C++ 2010 ,帮助大家做一些常见 的配置,以及第一次使用它来写 HelloWord 程序。

VisualC++6.0无法正常启动提示0xc0000142怎么办?vc6.0无法执行程序解决方法

VisualC++6.0无法正常启动提示0xc0000142怎么办?vc6.0无法执行程序解决方法

VisualC++6.0⽆法正常启动提⽰0xc0000142怎么办?vc6.0⽆法执⾏程序解决⽅法VC++(Visual C++) v6.0 简体绿⾊完整版类型:编译⼯具⼤⼩:35.8MB语⾔:简体中⽂时间:2021-07-06查看详情Microsoft Visual C++ 6.0 SP6 中⽂完整安装版(iso⽂件463M)类型:编程⼯具⼤⼩:463MB语⾔:简体中⽂时间:2014-08-14查看详情 vc6.0⽆法正常启动怎么办? 很多⽹友在升级Win10系统后出现vc6.0不能运⾏提⽰“应⽤程序⽆法正常启动0xc0000142”问题。

⽆法运⾏的原因是win10不兼容中⽂版的vc,解决⽅法很简单,直接⽤英⽂版的msdev.exe替换中⽂版的msdev.exe启动程序即可。

vc6.0⽆法执⾏程序解决⽅法: ⾸先下载英⽂版msdev.exe解压出来,然后找你的vc的安装⽬录。

如果你没有安装时没有更改安装路径,那就默认在C盘C:\Program Files (x86)\Microsoft Visual Studio\Common\MSDev98\Bin 这个⽬录下。

如果是绿⾊版,先找到vc总的⽬录,再按照\Common\MSDev98\Bin 这个路径来找。

直接将英⽂版的msdev.exe复制到Bin⽬录下并且覆盖。

有的同学可能是绿⾊版的vc,这种版本的vc可能为了兼容改了⽂件名,不叫msedv.exe,不⽤管,你将英⽂版复制进去之后,每次启动时启动复制进去的英⽂版就是的。

你可以右键发送⼀个快捷⽅式到桌⾯ 回到桌⾯打开刚才发送的快捷⽅式,即可成功启动vc。

写个程序并且编译⼀下,看看有没问题。

有问题可以参考下⾯的注意事项。

注意: 这⾥要注意⼀定要把它放到Bin⽬录下不然启动不了。

有同学没有放到Bin⽬录下,直接打开启动程序,显⽰丢失devshl.dll,就是没好好看步骤,没放到位置。

还有⼈会出现可能编译时会出现error spwaing cl.exe,这个错误⽹上的解决⽅法⼀⼤堆,可以⾃⼰去搜索⼀下。

用microsoft visual c 跳动爱心的代码

用microsoft visual c 跳动爱心的代码

用microsoft visual c 跳动爱心的代码在这个浪漫的情人节,你是否已经准备好给你的爱人送上一份特别的礼物呢?如果还没有,不妨学习一下如何用Microsoft Visual C 写出一个跳动的爱心程序,为你的爱人制作一个爱的表白。

首先,我们需要打开Microsoft Visual C,创建一个新的Windows 应用程序。

然后,在窗口的左侧找到“工具箱”栏目,选择“按钮”并将其拖动到窗口中央。

接下来,我们需要在窗口的右侧找到“属性”栏目,选择“FlatStyle”并将其设置为“Flat”。

然后选择“Text”并输入“爱”字,将字体大小改为48。

最后,选择“ForeColor”并将其设置为红色。

接下来,我们需要在窗口上添加爱心的图案。

在“工具箱”中找到“PictureBox”并将其拖动到窗口中央。

在“属性”栏目中选择“Image”并将其设置为一个爱心的图案。

如果你没有合适的图案,可以在网上搜索一下并将其下载到计算机中。

现在,我们需要添加跳动的动画效果。

在“工具箱”中找到“Timer”并将其拖动到窗口中央。

在“属性”栏目中选择“Interval”并将其设置为50毫秒,这将控制动画的速度。

然后在“事件”栏目中选择“Tick”并添加以下代码:int x = 0, y = 0;private void timer1_Tick(object sender, EventArgs e){x += 10;y = (int)(Math.Sin(x / 180.0 * Math.PI) * 50);pictureBox1.Location = new Point(pictureBox1.Location.X + 10, pictureBox1.Location.Y + y);}这段代码的作用是让爱心在窗口中往右跳动,并且上下浮动。

你可以根据自己的喜好调整x和y的值,来改变爱心跳动的方式。

最后,我们需要在“事件”栏目中选择“Load”并添加以下代码: timer1.Enabled = true;这将启动计时器,让爱心开始跳动。

Visual C6.0、Visual Studio 6.0中英版及教学视频下载

Visual C6.0、Visual Studio 6.0中英版及教学视频下载

Visual C6.0、Visual Studio 6.0中英版及教学视频下载Visual C++是一个功能强大的可视化软件开发工具。

自1993年Microsoft公司推出Visual C++1.0后,随着其新版本的不断问世,Visual C++已成为专业程序员进行软件开发的首选工具。

虽然微软公司推出了Visual C++.NET(Visual C++7.0),但它的应用的很大的局限性,只适用于Windows 2000,Windows XP和Windows NT4.0。

所以实际中,更多的是以VisualC++6.0为平台。

Visual C++6.0不仅是一个C++编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrated development environment,IDE)。

Visual C++6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导Class Wizard等开发工具。

这些组件通过一个名为Developer Studio的组件集成为和谐的开发环境。

Visual C++它大概可以分成三个主要的部分:1.Developer Studio,这是一个集成开发环境,我们日常工作的99%都是在它上面完成的,再加上它的标题赫然写着“Microsoft Visual C++”,所以很多人理所当然的认为,那就是Visual C++了。

其实不然,虽然Developer Studio提供了一个很好的编辑器和很多Wizard,但实际上它没有任何编译和链接程序的功能,真正完成这些工作的幕后英雄后面会介绍。

我们也知道,Developer Studio并不是专门用于VC的,它也同样用于VB,VJ,VID等Visual Studio家族的其他同胞兄弟。

所以不要把Developer Studio当成Visual C++,它充其量只是Visual C++的一个壳子而已。

VisualC常用函数和方法集汇总

VisualC常用函数和方法集汇总

VisualC常用函数和方法集汇总1、DateTime数字型Sytem.DateTimecurrentTime=newSytem.DateTime();1.1取当前年月日时分秒currentTime=Sytem.DateTime.Now;1.2取当前年int年=currentTime.Year;1.3取当前月int月=currentTime.Month;1.4取当前日int日=currentTime.Day;1.5取当前时int时=currentTime.Hour;1.6取当前分int分=currentTime.Minute;1.7取当前秒int秒=currentTime.Second;1.8取当前毫秒int毫秒=liecond;(变量可用中文)1.9取中文日期显示——年月日时分tringtrY=currentTime.ToString(\不显示秒1.10取中文日期显示_年月tringtrYM=currentTime.ToString(\1.11取中文日期显示_月日tringtrMD=currentTime.ToString(\1.12取当前年月日,格式为:2003-9-23tringtrYMD=currentTime.ToString(\1.13取当前时分,格式为:14:24 tringtrT=currentTime.ToString(\2、字符型转换转为32位数字型Int32.Pare(变量)Int32.Pare(\常量\3、变量.ToString()字符型转换转为字符串12345.ToString(\生成12,345.0012345.ToString(\生成¥12,345.0012345.ToString(\生成1.234500e+00412345.ToString(\生成12345.000012345.ToString(\生成3039(16进制)12345.ToString(\生成1,234,500.00%4、变量.Length数字型取字串长度:如:tringtr=\中国\intLen=tr.Length;//Len是自定义变量,tr是求测的字串的变量名5、字码转换转为比特码Sytem.Te某t.Encoding.Default.GetByte(变量)如:byte[]bytStr=Sytem.Te某t.Encoding.Default.GetByte(tr);然后可得到比特长度:len=bytStr.Length;6、Sytem.Te某t.StringBuilder(\字符串相加,(+号是不是也一样?)如:Sytem.Te某t.StringBuilderb=newSytem.Te某t.StringBuilder(\b.Append(\中华\b.Append(\人民\b.Append(\共和国\7、变量.Subtring(参数1,参数2);截取字串的一部分,参数1为左起始位数,参数2为截取几位。

VisualC6.0可视化编程窗口介绍


网络安全概述
25
时1分41秒
设置断点
• 当程序运行到一个断点时就会停下来,这时可以 检查程序的状态,运行代码,以及调试窗口估计 表达式的值。调试器支持的断点类型有
➢ 位置断点(无条件断点):在一个特定的位置中 断程序
➢ 数据断点:当表达式为真或值改变时,中断程序。 ➢ 消息断点:当在一个WndProc函数中接受一个消
2024年7月8日星期一12
网络安全概述
4
时1分41秒
• Resource View
• 显示工程中所有资源,单击“+”号依次打开 树形结构每一项,直到所有的“+”号都变成 “-”号,显示出了所有的资源,包括对话框 图符、字符串表和版本信息。双击某项, 就会显示该资源的图形编辑窗口,可直接 在这个窗口上增加和修改资源特征。
2024年7月8日星期一12
网络安全概述
9
时1分41秒
• 树形察看控件(Tree Control) • 制表文控件(Tab Control) • 动画显示控件(Animate) • 多信息编辑框(Rich Edit) • 用户控件(Custom Control)
2024年7月8日星期一12
网络安全概述
• App Wizard在生成应用程序的框架和工程 文件后,自动回到Visual C++6.0工作台, 并可调入新的工程工作区。由此进入了编 写可视化程序的主窗口——可视化编程窗 口,下面将各部分一一介绍
2024年7月8日星期一12
网络安全概述
1
时1分41秒
工作区窗口
• 工作区窗口有三个列表 • Class View
• 当选择是一个派生类时,可通过快捷菜单 增加成员函数或成员变量,

Visual C++ 6.0上机指导


Email:xbs72@
2、新建文件 执行“文件(File)” � “新建(New)”,单击“文件(Files)”选项卡,然后选中“C++ Sourse Files”,在“文件名(File name)”栏中输入 ex1.c ,在“位置(Location)”栏中 选择已经建立的文件夹,如 D:\vc60,单击“确定”按钮,这样将在 D:\vc60 下新建源程序 文件 ex1.c,开始进入编辑窗口。
(四)VC 使用的一些说明 1、关于编译、连接过程中的错误信息 以下程序是打开 ex2.c 程序,把语句 b=456;后的分号去掉,然后编译产生的错误信息。 在信息窗口中双击第一条出错信息,编辑窗口就会出现一个箭头指向程序出错的位置, 一般在箭头所指行的附近,就可以找到出错的语句。 注意底部信息窗口的高度可以调整(鼠标移到中间的控制条上,鼠标改变形状时拖动即 可),也可以拖动信息窗口右侧的滚动条观察错误信息。
说明:二级考试时机房内装的是完整版 VC 系统,可以从考试软件的答题菜单启动 VC。 平时练习时使用模拟系统和 VC 精简版,有的模拟系统启动时会提示没有安装 VC6,不过 不影响使用,也不影响评分,按照以上步骤操作即可。
Email:xbs72@
3、关于 VC 使用过程中出现的问题和 bug VC6 没有中文版,只有英文版,所有的中文版都是汉化的,本例采用了汉化较好的版本, 没有采用网上流传较广的创天中文版。另外,所有的中文版都号称集成了 SP6,其实只是集 成了 SP5,导致了一些问题的出现。 最典型的 bug 是编译时假死的问题,即编译时停在“Linking...”不动,无法终止编译, 也无法退出 VC。出现这种情况只有强行终止 VC,步骤如下: (1)保存当前编写的程序文件。 (2)调出任务管理器。 (按 Ctrl+Alt+Delete 或者在任务栏空白位置右键单击) (3)在任务管理中单击“应用程序”选项卡,在任务列表中选中 VC++,点“结束任务” 按钮,如果 VC 没有关闭,再点一次“结束任务”按钮,然后点“立即结束” 。 (4)重新启动 VC,打开原来的程序,再次编译一般就不会出现问题了。 另外,机房内安装保护卡的计算机,如果程序保存在 C 盘,运行时会出现错误,把程序 另存到 D 盘或其他非系统盘,就可以解决问题。

用microsoft visual c 爱心的代码

用microsoft visual c 爱心的代码今天我要分享一段用MicrosoftVisualC#写的表达爱心的代码。

这个程序会在控制台窗口中输出一颗闪烁的爱心,让我们一起来看看吧!首先,我们需要在程序中引入System.Threading和System.Console这两个命名空间,分别用来控制线程和输出控制台信息。

然后,我们定义一个方法叫做DrawLove(),用来绘制爱心。

这个方法的实现比较复杂,需要使用到许多数学公式和循环语句。

具体实现可以参考下方的代码。

接着,我们在Main()方法中调用DrawLove()方法,然后使用Thread.Sleep()方法来控制爱心的闪烁速度。

最后,我们在控制台中输出一段文字,表达我们对爱的美好祝愿。

代码如下:using System;using System.Threading;namespace LoveCode{class Program{static void Main(string[] args){DrawLove();while (true){Console.WriteLine('爱是世间最美好的情感,愿你我能一直拥有它。

');Thread.Sleep(5000);}}static void DrawLove(){int x, y;double a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r;for (y = 20; y >= -20; y--){for (x = -30; x <= 30; x++){a = Math.Sqrt(Math.Pow(x / 5.0, 2) + Math.Pow(y / 2.0, 2));b = Math.Sqrt(Math.Pow((x + 0.5) / 5.0, 2) + Math.Pow((y + 0.5) / 2.0, 2));c = Math.Sqrt(Math.Pow((x + 1) / 5.0, 2) + Math.Pow(y / 2.0,2));- 0.5) / 2.0, 2));e = Math.Sqrt(Math.Pow((x + 1) / 5.0, 2) + Math.Pow((y -1) / 2.0, 2));f = Math.Sqrt(Math.Pow((x - 1) / 5.0, 2) + Math.Pow((y -1) / 2.0, 2));g = Math.Sqrt(Math.Pow((x - 1) / 5.0, 2) + Math.Pow((y +1) / 2.0, 2));h = Math.Sqrt(Math.Pow((x + 1) / 5.0, 2) + Math.Pow((y +1) / 2.0, 2));i = Math.Sqrt(Math.Pow((x + 2) / 5.0, 2) + Math.Pow(y / 2.0,2));j = Math.Sqrt(Math.Pow((x - 2) / 5.0, 2) + Math.Pow(y / 2.0, 2));k = Math.Sqrt(Math.Pow((x + 0.5) / 5.0, 2) + Math.Pow((y - 1.5) / 2.0, 2));l = Math.Sqrt(Math.Pow((x - 0.5) / 5.0, 2) + Math.Pow((y + 1.5) / 2.0, 2));m = Math.Sqrt(Math.Pow((x + 2) / 5.0, 2) + Math.Pow((y - 1) / 2.0, 2));n = Math.Sqrt(Math.Pow((x - 2) / 5.0, 2) + Math.Pow((y - 1) / 2.0, 2));2) / 2.0, 2));p = Math.Sqrt(Math.Pow((x - 1) / 5.0, 2) + Math.Pow((y - 2) / 2.0, 2));q = Math.Sqrt(Math.Pow((x + 1) / 5.0, 2) + Math.Pow((y + 2) / 2.0, 2));r = Math.Sqrt(Math.Pow((x - 1) / 5.0, 2) + Math.Pow((y + 2) / 2.0, 2));if (a <= 1 || b <= 1 || c <= 1 || d <= 1 || e <= 1 || f <= 1 || g <= 1 || h <= 1 || i <= 1 || j <= 1 || k <= 1 || l <= 1 || m <= 1 || n <= 1 || o <= 1 || p <= 1 || q <= 1 || r <= 1) {Console.Write('*');}else{Console.Write(' ');}}Console.WriteLine();}}}}喜欢这段代码的朋友们可以运行一下看看效果,也可以尝试对代码进行修改,让爱心更加美丽动人。

Visual_C 使用方法简介(自学)

21
调试窗口
调试窗口包括一组窗口,在调试程序时分别显示 各种信息,这些窗口主要包括:
• • • •
变量查看窗口(WATCH) 过程调用查看窗口(CALL STACK) 内存查看窗口(MEMORY) 寄存器查看窗口(REGISTER)
22
用VC++环境下运行一个新 程序的上机操作步骤
1.打开VC++窗口,单击菜单[File]->[New] 2.在弹出窗口上选择标签Project,选中Win32 Console Application项,并在Project name框输入 工程名;在Location框输入保存源程序的路径名; 单击OK。 3.在弹出窗口选择An Empty Project,单击[Finish] 按钮;在下一窗口单击OK。 4.再在VC++菜单条中单击[File]->[New]。
2
[File]文件菜单
[File]菜单共有14选项,分成6组:
1、[New]新建一个一般文件,工程,工作区,其他文档。 [Open]打开、[Close]关闭 2、Workspace工作区操作,打开、保存和关闭工作区。 3、有三个菜单项,用于文件保存。 4、有二个菜单项,用于文件打印。 5、用于打开以前打开过的文件或工作区。 6、一个菜单项Exit,用于退出Visual C++ 6.0。
8.如果再键入另一个新程序,单击 [File]->[Close Workspace]; 然后再重复上述步骤。 编译一个已打开的程序也可简单地单击[Build All]的 标志符。执行编译好的程序,单击执行标志!。
24
如要打开已存在的C++ .CPP源程序,可按以下步骤 打开: 1.打开VC++窗口,单击[File]->[Open]; 2.在弹出对话框找文件所在文件夹,选中文件,单 击打开按钮,把文件调入VC++编辑窗。 3.在VC++菜单条中单击[Build]->[Compile],单击 是按钮。 4.无编辑错,单击[Build]->[Build];无连接错, 单击[Build]->[Execute]执行程序;运行结束,按 任意键退回VC++窗口。 编译一个已打开的程序也可简单地单击[Build All] 的标志符。执行编译好的程序,单击!
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

5 使用复合赋值和循环语句本章旨在教会你:使用复合赋值操作符来更新一个变量的值使用while、for和do等循环语句逐步执行一个do方法,并观察变量值的变化

第4章讲述了如何使用if和switch结构来选择性地运行语句。在本章,将介绍如何使用多种循环语句来重复运行一个或多个语句。写循环语句时,通常需要控制重复次数。为此,可以使用一个变量,在每次重复时都更新它的值,并在变量抵达一个特定的值时停止重复。因此,还要介绍如何在这些情况下使用特殊的赋值操作符来更新一个变量的值。

5.1使用复合赋值操作符前面讲过如何使用算术操作符来创建新值。例如,以下语句使用操作符+来创建比变量answer大42的一个值,新值将写入控制台:

Console.WriteLine(answer+42);前面还讲过如何使用赋值语句来更改一个变量的值。以下语句使用赋值操作符将answer的值变成42:

answer=42;如果希望在一个变量的值上加42,可以将赋值操作符与加法操作符合并到一起。例如,以下语句在answer上加42,并将新值赋给answer。换言之,在运行该语句之后,answer的值将比之前大42:answer=answer+42;

虽然这是一个有效的语句,但有经验的程序员不会这样写。在变量上加一个值是非常普遍的一个操作,所以MicrosoftVisualC#专门提供了一个复合赋值操作符+=来简化这个操作。为了在answer上加42,有经验的程序员会这样写:answer+=42;

利用这个快捷方式,可以将任何算术操作符与赋值操作符合并到一起,表5.1对此进行了总结。这些操作符统称为复合赋值操作符(compoundassignmentoperator)。第I部分MicrosoftVisualC#和MicrosoftVisualStudio2005概述60

表5.1复合赋值操作符错误写法正确写法variable=variable*number;variable*=number;variable=variable/number;variable/=number;variable=variable%number;variable%=number;variable=variable+number;variable+=number;variable=variable-number;variable-=number;

提示复合赋值操作符与简单赋值操作符具有一样的优先级和右结合性。操作符+=也可作用于字符串;它能将一个字符串附加到另一个字符串末尾。例如,以下代码将在控制台上显示"HelloJohn":stringname="John";stringgreeting="Hello";greeting+=name;Console.WriteLine(greeting);

但是,不能将其他任何复合赋值操作符用在字符串上。

注意需要让一个变量递增或递减1时,不要使用复合赋值操作符,而是使用操作符++和--。例如,以下语句的写法是错误的:

count+=1;正确写法如下:count++;

5.2使用while语句使用while语句,可以在一个布尔表达式为true的前提下重复运行一个语句。while语句的语法如下:

while(booleanExpression)statement

首先会对布尔表达式进行求值,如果为true,就运行语句,然后再次求值布尔表达式。如果表达式仍为true,就再次运行语句,并再次求值表达式。这个过程会反复进行下去,直到布尔表达式求值为false;届时,while语句将退出,并从while之后的第一个语句继续。while语句在语法上与if语句有许多相似的地方(事实上,两者除了关键字不同,语法是完

全一样的):表达式必须是一个布尔表达式。布尔表达式必须放在圆括号内。假如首次求值时,布尔表达式为false,语句不会运行。假如想要在一个while的控制下执行两个或者更多的语句,必须使用大括号将语句分组到一个块中。第5章使用复合赋值和循环语句61

以下while语句向控制台写入0~9的值:inti=0;while(i!=10){Console.WriteLine(i);i++;}

所有while语句都应该在某个时候终止。新手常犯的错误是忘记添加一个特别的语句,它最终能造成布尔表达式求值为false并终止循环。在上例中,i++;就属于这种情况。

注意while循环中的变量i控制着最终的循环次数。这是非常流行的一个表示法,具有这个作用的变量有时也称为哨兵变量(Sentinelvariable)。

在下面的练习中,准备写一个while循环,它每次从一个源文件中读取一行内容,并将每一行都写入一个文本框中。

使用while语句1.在VisualStudio2005中打开WhileStatement项目,它位于MyDocuments文件夹下的\MicrosoftPress\VisualCSharpStepbyStep\Chapter5\WhileStatement子文件夹中。2.选择“调试”|“开始执行(不调试)”。VisualStudio2005将生成并运行这个Windows应用程序。应用程序本身是一个简单的文本文件查看器,允许你选择一个文件来显示它的内容。3.单击“OpenFile”(打开文件)按钮。

随后会出现“打开”对话框4.切换到MyDocuments文件夹下的\MicrosoftPress\VisualCSharpStepbyStep\Chapter5\WhileStatement\WhileStatement子文件夹。5.选中Form1.cs文件,再单击“打开”。文件名Form1.cs会在小的文本框中显示,但文件的内容没有在大文本框中显示。这是由于我们还没有实现相应的代码来读取源文件的内容,并在大文本框中显示那些内容。下面的步骤将添加这个功能。6.关闭窗体,返回VisualStudio2005。7.在“代码和文本编辑器”窗口中显示文件Form1.cs的代码,找到openFileDialog_FileOk方法。用户在“打开”对话框中选择了一个文件,并在单击“打开”按钮之后,调用该方法。方法的主体目前是:stringfullPathname=openFileDialog.FileName;FileInfosrc=newFileInfo(fullPathname);filename.Text=src.Name;/*addwhileloophere*/

第一个语句声明了一个字符串变量,名为fullPathname,并把它初始化为openFileDialog对象的FileName属性。该语句将fullPathname初始化为“打开”对话框中选择的源文件的完整名称(包括路径)。第I部分MicrosoftVisualC#和MicrosoftVisualStudio2005概述62

注意openFileDialog对象是可以从“工具箱”中选取的OpenFileDialog组件的一个实例。利用这个组件提供的方法,你可以向用户显示一个标准的Windows“打开”对话框,让用户从中选择一个文件,并获取所选文件的名称和路径。

第二个语句声明了一个名为src的FileInfo变量,并把它初始化成代表“打开”对话框中所选文件的一个对象(FileInfo是Microsoft.NETFramework提供的一个类,可利用它对文件进行各种处理)。第三个语句将src变量的Name属性赋给filename控件的Text属性。src变量的Name属性包含了在“打开”对话框中选定的文件名(但无路径信息)。通过此次赋值,文件名会在Windows窗体的filename组件中显示。8.将/*addwhileloophere*/注释替换成以下语句:

source.Text="";source字段是窗体上最大的文本框。把它的Text属性设置成空字符串(""),就可以清除当前显示的任何文本。9.在刚才在openFileDialog_FileOk方法中添加的那一行语句之后,输入以下语句:

TextReaderreader=src.OpenText();该语句声明了一个名为reader的TextReader变量(TextReader是.NETFramework提供的另一个类,它用于从文件这样的来源中读取字符流。该类位于System.IO命名空间中)。OpenFileDialog类提供了OpenText方法,它用于打开用户在“打开”对话框中选择的文件。OpenText方法返回的是一个TextReader对象。上述语句的作用就是将reader初始化为从src.OpenText方法调用中返回的TextReader对象。现在,可以使用reader变量来读取用户选择的文件中的内容。10.在添加到openFileDialog_FileOk方法的上一行语句之后,接着输入以下语句:

stringline=reader.ReadLine();while(line!=null){source.Text+=line+'\n';line=reader.ReadLine();}reader.Close();

上述代码声明了一个名为line的string变量,它用于容纳reader从文件中读取的每一行文本。语句调用reader.ReadLine方法从文件中读取第一行文本。该方法要么返回下一行文本,要么返回一个名为null的特殊值(如果没有更多的行可供读取)。这个调用的结果将赋给line变量。while循环开头的布尔表达式检查line变量的值。如果不为null,循环主体就显示读取

的文本行,具体的做法是将该行附加到名为source的TextBox控件的Text属性尾部,并在最后添加一个换行符('\n')。TextReader对象的ReadLine方法在读取每一行的时候,会自动剥除换行符,所以需要重新添加这个换行符。随后,while循环将读取下一行文本(这是循环的“更新”语句),然后执行下一次重复。循环结束后,调用extReader对象的Close方法来关闭文件。

相关文档
最新文档