C++ 程序的输出 |设置 34(文件处理)
- 下面的程序执行什么任务?
#include
#include using namespace std; int main() { ofstream ofile; ofile.open ("text.txt"); ofile << "geeksforgeeks" << endl; cout << "Data written to file" << endl; ofile.close(); return 0; } 回答:
The program prints "geeksforgeeks" in the file text.txt
说明:当为 ofstream 类创建对象时,它允许我们像 cout 一样写入文件。当使用 ofstream 对象打开文件时,如果文件存在,则内容将被删除,否则将被创建。
- 下面的程序执行什么任务?
#include
#include using namespace std; int main() { char data[100]; ifstream ifile; //create a text file before executing. ifile.open ("text.txt"); while ( !ifile.eof() ) { ifile.getline (data, 100); cout << data << endl; } ifile.close(); return 0; } 回答:
The program takes input from text.txt file and then prints on the terminal.
描述:当为 ifstream 类创建对象时,它允许我们像 cin 一样从文件中输入。 getline 一次获取整行。
- 以下程序的输出是什么?
#include
#include #include #include using namespace std; int main() { ifstream ifile; ifile.open ("text.txt"); cout << "Reading data from a file :-" << endl ; int c = ifile.peek(); if ( c == EOF ) return 1; if ( isdigit(c) ) { int n; ifile >> n; cout << "Data in the file: " << n << '\n'; } else { string str; ifile >> str; cout << "Data in the file: " << str << '\n'; } ifile.close(); return 0; } 输出:
Reading data from a file:- Data in the file: /*content of the file */
说明: peek() 获取输入流中的下一个字符,但不将其从该流中删除。该函数通过首先构造一个对象来访问输入序列。然后,它通过调用其成员函数sgetc 从其关联的流缓冲区对象(ifile)中读取一个字符,并最终在返回之前销毁该对象。
- 运行代码后文件内容会有哪些变化?
#include
#include using namespace std; int main () { //create a text file named file before running. ofstream ofile; ofile.open ("file.txt"); ofile<< "geeksforgeeks", 13; ofile.seekp (8); ofile<< " geeks", 6; ofile.close(); return 0; } 输出:
content of file before: geeksforgeeks contents of the file after execution: geeksfor geeks
描述: seekp() 用于将放置指针移动到相对于参考点的所需位置。使用此函数将流指针更改为绝对位置(从文件开头开始计数)。在这个程序中,以下内容将写入文件。
ofile<< "geeksforgeeks", 13;
然后ofile.seekp(8)会将指针放在从你开始的第8个位置,然后将打印以下内容。
ofile<< " geeks", 6;
- 以下程序的输出是什么?
#include
#include #include using namespace std; int main () { ifstream ifile; ifile.open ("text.txt"); //content of file: geeksfor geeks char last; ifile.ignore (256, ' '); last = ifile.get(); cout << "Your initial is " << last << '\n'; ifile.close(); return 0; } 输出:
Your initial is g
描述: ignore(256, ' ') 从输入序列中提取字符并丢弃它们,直到提取了 256 个字符,或者一个比较等于 ' '。该程序打印文件中第二个单词的第一个字符。