给定一个文件和一个行号n,任务是从给定的文本文件中删除第n行。
假设myfile.txt的初始内容为:
GeeksforGeeks
GeeksforGeeks IDE
GeeksforGeeks Practice
GeeksforGeeks Contribute
删除第2行后,内容为:
GeeksforGeeks
GeeksforGeeks IDE
GeeksforGeeks Contribute
方法 :
1)打开在输入模式源文件,并通过读字符它字符。
2)由字符在文件字符打开在输出模式和地点的内容的另一个文件。
3)将另一个文件重命名为源文件。
// C++ Program to delete the given
// line number from a file
#include
using namespace std;
// Delete n-th line from given file
void delete_line(const char *file_name, int n)
{
// open file in read mode or in mode
ifstream is(file_name);
// open file in write mode or out mode
ofstream ofs;
ofs.open("temp.txt", ofstream::out);
// loop getting single characters
char c;
int line_no = 1;
while (is.get(c))
{
// if a newline character
if (c == '\n')
line_no++;
// file content not to be deleted
if (line_no != n)
ofs << c;
}
// closing output file
ofs.close();
// closing input file
is.close();
// remove the original file
remove(file_name);
// rename the file
rename("temp.txt", file_name);
}
// Driver code
int main()
{
int n = 3;
delete_line("a.txt", n);
return 0;
}
Note: Run this code offline IDE keep text file name
as "a.txt" in same folder
想要从精选的最佳视频中学习并解决问题,请查看有关从基础到高级C++的C++基础课程以及有关语言和STL的C++ STL课程。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程” 。