文件中的文字变成了变量?

时间:2010-05-03 15:04:56

标签: c++ text copy

如果我使用“list”-function(#include)创建了一个在文本文件中存储字符串的程序,然后我想复制该文件中的所有文本并调用它(所以我可以告诉它程序通过使用一个变量来引用文本来输入我复制的所有文本,我是否使用字符串,double,int或者我将这些文本块声明为什么?

我正在一个简单的控制台应用程序中使用c ++制作程序。

PoweRoy的解释更简单:

我在.txt文件中有一个文本,我想复制其中的所有内容然后我刚刚复制的所有内容,我想称之为“int text”或“string text”或者其他什么。但我不知道。知道使用哪一个“int”,“string”,“double”等。

3 个答案:

答案 0 :(得分:3)

对你有点遗憾,这是关于最简单的C ++程序,它将文件读入内存然后用它做一些事情:

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

int main() {

    ifstream  input( "foo.txt" );
    if ( ! input.is_open() ) {
        cerr << "could not open input file" << endl;
        return 1;
    }

    vector <string> lines;
    string line;
    while( getline( input, line ) ) {
        lines.push_back( line );
    }

    for ( unsigned int i = 0; i < lines.size(); i++ ) {
        cout << (i+1) << ": " << lines[i] << "\n"; 
    }
}

答案 1 :(得分:1)

从广义上讲,您正在谈论Serialization的概念 - 将变量值存储在永久存储器中,就像文件一样,以便您以后可以重新加载它们。请查看该链接以扩大您的理解。

具体来说,听起来你在文件中有任意文本,并希望在你的程序中引用它。在这种情况下, string 听起来合适。除非文件中的文本旨在表示一个单一的数字,否则这似乎是最合适的。

请注意,如果您有结构化数据(如CSV文件或XML文件),则更复杂的数据结构(例如类,类数组等)可能是更好的选择。

答案 2 :(得分:0)

#include <iostream>
#include <fstream>
#include <string>

int main() {
   // Open stream from file
   std::ifstream ifs("foo.txt");

   // Get file contents
   std::string file_contents(
      (std::istreambuf_iterator<char>(ifs)),
      std::istreambuf_iterator<char>()
   );

   // Output string to terminal to see that it works
   std::cout << file_contents;
}