【发布时间】:2019-08-14 12:25:16
【问题描述】:
我正在尝试编写一个程序来询问用户两个文件名。第一个文件将被打开以供输入,第二个文件将被打开以供输出。 (假设第一个文件包含以句点结尾的句子。)程序将读取第一个文件的内容并将除每个句子的第一个字母之外的所有字母都更改为小写,这应该是大写。修改后的内容应该存放在第二个文件中。
我能够让代码正常工作,但它输出的行之间有很大的中断:
我的输入: https://imgur.com/a/pfFemjJ
这是 input.txt 的文本
c++ 是贝尔实验室的 Bjarne Stroustrup 开发的“高级编程语言”。 它有助于优化资源并支持网络多人游戏选项。 google 的主页包含一个标记为“手气不错”的按钮。 当用户输入搜索并单击按钮时,用户将被直接带到第一个搜索结果,绕过搜索引擎结果页面。您会注意到 output.txt 中的行之间不必要的空格。我不知道为什么会这样输出。
我试图弄乱我的 while 循环,但我似乎无法调试这个问题
#include <algorithm>
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
char ch;
string inputNAME, outputNAME;
string line;
cout << "Please enter the filename for INPUT file: ";
cin >> inputNAME;
cout << "Please enter the filename for OUTPUT file: ";
cin >> outputNAME;
fstream inFile, outFile;
当“input.txt”在句子之间没有中断时,我的代码可以工作,因为每个句子都没有分隔。 但是,当句子之间有中断时,它不再正确转换。
最终目标是让我的输出文件如下所示:(注意转换后的句子之间没有中断)
【问题讨论】:
-
从 while 循环中删除这个
inFile.get(ch);并尝试。 string[0] 已经进行了实际的转换,从文件中提取一个字符将改变文件索引。 -
那没有成功。我能够解决转换问题(现在每个句子的开头都是一个大写字母)。但是,句子之间仍然有这些奇怪的中断,我似乎无法摆脱。有什么想法吗?
-
string string;是一件非常危险的事情。此后,string不再是类型,而是变量。如果您在此之后尝试创建另一个string变量,这可能会造成严重破坏。此外,它不包含有关如何使用string的任何信息。 -
“句子”的定义是什么? “The U.S.A. is a country in North America.”一共有多少个句子?
-
就我而言,这是一个以句点结尾的声明
标签: c++