gpt4 book ai didi

c++ - 删除注释的 C++ 程序

转载 作者:太空狗 更新时间:2023-10-29 19:45:08 25 4
gpt4 key购买 nike

我正在尝试创建一个程序,它接受一个 C++ 代码的文本文件并输出另一个包含该代码的文件,减去它包含的任何注释。

假设rFile和wFile定义如下:

ifstream rFile; // File stream object for read only
ofstream wFile; // File stream object for write only

rFile.open("input.txt", ios::in);
wFile.open("output.txt", ios::out);

我的第一个想法是简单地浏览文本并做相当于笔的操作( Logo 引用)当(稍微改进的)peek() 识别/* 并在看到 */时落笔。当然之后seeing//它会“起笔”直到它到达\n。

这种方法的问题在于 output.txt 不包含任何原始空格或换行符。

这是代码(在这个阶段我什至没有尝试删除注释):

while (!rFile.eof())
{
rFile>>first; //first is a char
wFile<<first;
}

然后我尝试使用 getline() 分别获取每一行代码,然后添加wFile 的结尾。它到目前为止有效,但让事情变得更复杂,更少优雅且代码可读性差。

所以,我想知道是否有人对我有任何指示。 (没有双关语的意思!)

注意这是我收到的更大的家庭作业的一部分,我限于仅使用 C++ 函数而不是 C 函数。

最佳答案

更新:

其他人提到过这个,但我认为get可能是比“>>”更好用的函数。

原帖:

解决方案是逐个字符地读取输入,而不是使用 getline()

可以用“>>”读取字符,用“<<”输出。这样你就不必使用“endl”了。行终止符和空格字符将作为单独的字符读入。

当您看到评论的开始时,您可以停止输出字符,直到您吃掉适当的评论终止符。

在处理“//”标记的末尾时,您还需要确保将“\r\n”视为单个终止符。

关于c++ - 删除注释的 C++ 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1023608/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com