【发布时间】:2019-12-11 21:56:11
【问题描述】:
我正在尝试编写一个程序。第一个文件将被打开以供输入,第二个文件将被打开以供输出。 (假设第一个文件包含以句点结尾的句子。)程序将读取第一个文件的内容并将除每个句子的第一个字母之外的所有字母都变为小写,应将其变为大写。修改后的内容应该存放在第二个文件中。
我已经能够让我的代码工作,因为我成功地将 input.txt 中的内容转换为上述要求(所有句子都是小写的,除了每个句子中的第一个单词)。但是output.txt中没有出现这个内容
input.txt 和 output.txt 都位于 main.cpp 旁边的同一目录中。
我尝试使用不同的 IDE,但没有任何效果。我也尝试在 output.txt 的位置附近移动,但也没有任何效果。
示例输入:谷歌的主页包含一个标有“我正在感受”的按钮 幸运”。当用户输入搜索并单击按钮时 用户将被直接带到第一个搜索结果,绕过 搜索引擎结果页面。
示例输出:Google 的主页包含一个标有“我是 感觉很幸运”。当用户输入搜索并点击 按钮用户将被直接带到第一个搜索结果, 绕过搜索引擎结果页面。
string inFileName, outFileName;
string line;
char c;
cout << "Enter input file name: ";
cin >> inFileName;
fstream fin, fout;
fin.open(inFileName.c_str(), ios::in);
fout.open(outFileName.c_str(), ios::out);
if (fin.fail())
{
cout << "INPUT FILE DOES NOT EXIST (DNE)\n";
system("pause");
return 1;
}
output.txt 中没有显示任何内容(它是空白的)。从我注意到这个命令fout << line << "." << endl; 没有做任何事情。
[这是另一个屏幕截图]显示了我的终端中的内容以及 input.txt 和 output.txt 中的内容:
您会注意到终端中显示了正确的转换,但我无法将终端中的文本转换为 output.txt。
【问题讨论】:
-
"input.txt 和 output.txt 都在 main.cpp 旁边的同一个目录中。" 别管 main.cpp 在哪里 - 当前工作目录是什么你运行程序?
-
请提供minimal reproducible example。我应该能够复制、粘贴和编译代码。尝试硬编码的变量名称。
-
我的意思是像
outFileName = "output.txt"这样的硬编码文件名,而不是从用户那里读取它们。将您的代码减少到最低限度。删除用户输入。 -
我认为这里的想法是删除变量以进行调试。对名称进行硬编码将对此有所帮助。
-
解决问题后,您可以添加用户输入
标签: c++ file-io fileoutputstream