你好, 欢迎｡
在这节课上, 我想 为我们之前的挑战提供了解决方案, 将包含小写字符的文件转换为
包含大写字符｡
与此同时, 我们将创建 一个临时文件,
所以我们需要重命名和删除等等｡
的最终输出｡ 程序将成为文件｡
我们将在文件中看到 已转换为大写｡
让我们来看看代码 块, 创建项目｡
我会说新项目,
控制台 应用程序, 进入c, 这叫做转换小写文件｡
我们只是要 这是我们的主要｡ c.其他
我们要确保我们创造了
我们的标准io头文件, 因为我们将阅读和写入 和使用fopen等等｡
所以我一直喜欢做的是 在前面创建文件｡
所以这里我要定义 我的文件名的常量｡
让我们称之为define｡
这次我们调用test｡ 文本中｡
所以我们可以说 文件名全部大写｡
我喜欢参加那个大会｡
然后我会 在我们的项目中创建文件名｡
所以, 我再次存储我的文件 在我的下载目录中｡
那是我所有 存储项目｡
在这个例子中, 我们有一个项目 称为转换小写文件｡
我会把它纠正过来
在同一个目录中, 这样我就可以从IDE中运行它｡
我将创建一个新的文本文件｡
我来给这个测试命名｡ 文本中｡
我要把它拿出来, 我只需要输入一些小写和大写字符｡
假设Jason正在测试｡ 好吧, 我会的 无论什么测试, 有些是大写,
有些是小写
最终结果是, 它们总是大写, 这又是一个挑战
我们走吧｡
所以最终的结果是 要测试的文件｡ txt文件中的所有大写字母｡
但我们保存用 一些大写和一些小写｡
现在, 我们已创建了文件
现在我们可以做一些阅读和写作｡
我将创建一对文件 文件指针都是大写文件,
我会用星星fp
我将初始化它
设置为null, 然后创建另一个文件指针 从fp1开始且也等于空｡
这里我需要两个人
我将对不同的文件执行阅读操作, 一个临时文件｡
我还要创造一个角色 变量,
它将是我们使用fgetc读入的字符｡
我会让它保持相等 设置为null,
或者更好的方法是将其保留为空字符串｡
我需要做的第一件事是
需要以读取模式打开第一个文件, 即fp和 第二个文件将是临时文件｡
所以我会说fp等于fopen｡
我将使用 测试文件名 文本中｡
文件名, 我将 以只读方式打开｡
然后我想让 请确保该值为空｡
所以我会说如果fp 等于null,
那么我只返回-1.
然后我想创建临时文件｡
所以在这里我将 创建一个临时文件｡
在这种情况下, 我将 打开一个文件进行写入｡
我将使用fp1指针, 我会说fopen
我就跟这个 温度 文本, 如果它不存在,
它会创建它｡
然后我会把 因为我只写它｡
再说一次, 我想做的是
下面是我想确保fp1不等于null｡
所以我会说fp1｡
如果它等于null, 那么我就 返回一个负数｡
现在我打开了两个文件, 一个用于阅读, 一个用于写入｡
写入临时文件｡
接下来我想做的是 开始阅读文件, 然后写入所有大写字母｡
所以我想添加一个while循环
字符数据类型ch等于 fgetc, 我想从我的测试中读取｡
所以fp和我想这样做 直到我没有到达文件末尾｡
所以我可以说不等于eof｡
Eof是一个特殊的常数｡
在while循环中, 我想 检查我阅读到的字符中是否有小写的｡
如果是小写的ch,
如果我找到一个小写字符, 那么我只需要设置 字符为大写｡
所以我可以说ch等于ch减32｡
这将转换字符 转换为大写字符｡
在我把它转化之后, 不管它是否被转换, 不管它是否是大写的, 那么我
我想把它写入我的临时文件｡
所以这里我可以说fputc｡
我可以说我的角色 以及文件指针fp1｡
所以每次我读到一个字符, 我正在写我的临时文件｡
如果是小写, 我就把它转换成 转换成大写然后写入｡
这个while循环的结尾是 我有一个临时文件, 其中包含
测试｡ 使用大写字母的文本｡
所以我已经完成了 那些文件的读写｡
所以我可以说fclose fp和fclose fp1｡
我现在要重命名我的temp 文件到我的测试｡ 文字档｡
这里我可以说重命名, 调用重命名函数,
我可以说temp. 正文 这就是我想重新命名的｡
而我想 正在测试重命名｡ 文本或使用常量filename｡
我仍然创建了临时文件｡
所以我想删除临时文件｡
因此删除临时文件｡
在这里我可以调用remove 函数并将其传递到Temp｡ 文本中｡
我最不想看到的就是 我想打印出测试的内容｡
文本文件, 将转换为大写｡
而不是关闭fp, 因为 指向测试 短信, 我现在无法关闭它,
我可以 只需关闭fp1, 因为fp1是临时值｡
文本, 这就是 我要重新命名并删除它｡
其实我得关门了 因为我给它重新命名了｡
所以我必须关闭fp｡
现在在第43行, 我想重新打开 fp, 因为现在我想读取内容并打印出来｡
所以我可以说fp fopen文件名或者 对不起, 文件名, 我想阅读它｡
所以我只会说r｡
我想再强调一次 确保它不为空｡
如果它等于 null, 我想返回｡
我只想说 返回负1｡
我可以打印一些输入｡
这里我想读一下 然后打印出来｡
所以我可以再做一个while循环｡
我们还没打印任何东西, 所以 我们应该能够说虽然ch等于FGETCFP而不等于eof｡
我们要做的是 我只想打印出胸部
所以我们可以说百分之cch, 然后我们就完事了｡
最后, 我们 我想关闭最后一个文件fp,
并将fp设置为等于 且fp1等于空｡
所以让我们确保这一点｡
所以我们可以走了｡
我们可以编译, 把分号 在第54行我有一个冒号｡
所以如果我们从后面走 通过这段代码,
我们创建了一对文件指针｡
我们有常数｡
我们打开一个文件｡
我们读了它｡
在我们阅读的过程中 将其写入临时文件｡
然后删除临时文件｡
我们必须删除 因为我们必须重命名并删除临时文件｡
我们无法在 函数或已打开的文件, 因此我们必须关闭它们｡
所以我们重新开张 我们打印出数据｡
所以我们就这么办｡
我们应该看到输出 所有字符信息｡
所以当我们运行这个程序时, 我们会看到它用大写字母打印所有内容｡
所以我们运行它, 它打印 用大写字母写出来
如果我们看一下 磁盘, 我们可以查看测试｡ 我们会注意到它现在 包含所有大写字母｡
同样, 如果我们想改变这个 再改些小写字母｡
所以我们在这里保存的是小写 我们运行这个程序,
它会把所有内容都转换成大写
再说一次, 如果我们运行这个, 用大写字母打印出来｡
我们看了一下, 发现都是大写的｡
一个很棒的小程序 将小写字符转换为大写｡
很简单,
我们 使用我们这里重要函数, 文件指针fopen
然后我们使用nice fclose删除并重命名
然后是fopen和fgetc｡
如果您有任何问题, 请发邮件给我｡
我将此源文件另存为zip 这样你就可以看一下了｡
-谢谢—谢谢