从文件中的某个点删除到行尾
Deleting from a certain point in a file to the end of the line?
我在检测两个"//"作为字符,然后从第一个"/"删除到行末时遇到了一些问题(此处使用im猜测/n)。
{
ifstream infile;
char comment = '//';
infile.open("test3.cpp");
if (!infile)
{
cout << "Can't open input filen";
exit(1);
}
char line;
while (!infile.eof())
{
infile.get(line);
if (line == comment)
{
cout << "found it" << endl;
}
}
return 0;
}
在test3.cpp文件中有三个注释,因此有三个"//"。但我无法检测到双斜杠,只能检测到一个/,这将影响c++文件的其他部分,因为我只想从注释的开头删除到行的末尾?
我在检测两个"//"作为字符时遇到了一些问题
这是因为//
不是一个字符。它是由两个字符组成的序列。一个字符序列被称为字符串。您可以制作带有双引号的字符串文字:"//"
。
一个简单的解决方案是将流中的当前输入字符与字符串"//"
的第一个字符'/'
进行比较。如果匹配,则将流中的下一个字符与搜索字符串中的第二个字符进行比较。如果你在一排中找到两个'/'
,你就找到了你的对手。或者,你可以聪明地将整行读取到std::string
中,并使用成员函数来查找它
还有:
while (!infile.eof())
{
infile.get(line);
// using line without testing eof- and badbit
这段代码是错误的。在读取流并处理输入之前,您测试eofbit。
您为line
变量选择的名称有点令人困惑,因为它不包含全部内容。行,但只有一个字符。
相关文章:
- 如何在输入新内容 c++ 之前删除文件中的所有内容
- 文件模式标志"ios::app"是否用于删除文件(如果文件已存在)?
- 查找并删除文件 C++ 中的整行
- 如何删除文件中的数字,通过 c++ fstream 的
- 以编程方式防止重命名或删除文件,但仍使其可写
- C++ 如何使用_rmdir删除文件?
- 关于从驱动器中删除文件的问题
- Linux 从永远在线的应用程序中创建和删除文件
- 用户使用C++中的删除功能删除文件
- 如何在C++中删除文件中的一部分文本
- 我可以删除 *.o文件(代码:: blocks)
- 为什么std ::删除文件始终返回-1
- C++ 使用数字删除文件 io 行
- 如何使用 c++ 删除文件夹及其内容
- 如何在 C++ 中的文件处理中删除文件
- 用数字删除文件
- Cygwin:打开句柄时删除文件
- 接收文件并删除文件中的重复项
- 删除文件 C++ 中字符串中最后一个出现的字符
- 在循环内删除文件时使提升recursive_directory_iterator无效