从文本文件中读取行并显示在屏幕上

时间:2017-04-13 10:52:56

标签: c++

我对编程很陌生,这是我的问题。我需要做一个文本编辑器(类似于微软记事本,但更简单)。我试图一步一步地做,就像我需要打开文件,然后阅读它等等。但是这段代码清除了我的程序,我无法正确理解我如何逐行阅读(可能使用for或while)。感谢

  #include <iostream>
#include <fstream>

using namespace std;

/*
void openFile()
{
    ofstream file2("text2.txt"); // create and open text file
    file2 << "Hello there"; // write in file
    file2.close(); // close file
}
*/

void readFile(char text[4050])
{

    ifstream file("text2.txt"); // read from file
    if (!file.is_open()) // if file is not opened then write "file is not found". else
        cout << "File is not found!" << endl;
    else
    {
        file.getline(text, 4050); // to where(text), max symbols(4050)
        cout << text << endl;
        file.close();
    }
}

using namespace std;

int main()
{

    char text[4050];

    ofstream file2("text2.txt");
    readFile(text);
    return 0;
}

我的代码可能错误而且很奇怪,但是一旦我弄明白了,我会尽力修复它。

1 个答案:

答案 0 :(得分:2)

这是逐行读取文件的最简单方法。

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main () {
  string line;
  ifstream myfile ("MyFile.txt");
  if (myfile.is_open()) {
    while ( getline (myfile,line) ) {
      cout << line << '\n';
    }
    myfile.close();
  }
  else {
    cout << "Unable to open file"; 
  }
  return 0;
}