текст из файла превратился в переменную? - PullRequest
0 голосов
/ 03 мая 2010

Если я создал программу, которая хранит строки в текстовом файле, используя функцию «list» (#include), а затем я хочу скопировать весь текст из этого файла и вызвать его как-нибудь (чтобы я мог сказать программа для ввода всего текста, который я где-то скопировал, используя эту переменную для ссылки на текст), я использую строку, double, int или как мне объявить этот фрагмент текста как?

Я создаю программу с использованием c ++ в простом консольном приложении.

Более простое объяснение для PoweRoy:

У меня есть текст в файле .txt, я хочу скопировать в него все, а затем все то, что я только что скопировал, я хочу назвать его «int text» или «string text» или как угодно. Но я не не знаю, какой из этих «int», «string», «double» и т. д. использовать.

Ответы [ 3 ]

3 голосов
/ 03 мая 2010

Жаль, что речь идет о самой простой программе на 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 голос
/ 03 мая 2010

Говоря в широком смысле, вы говорите о концепции Сериализация - хранение значений переменных в постоянном хранилище, например, в файле, чтобы вы могли перезагрузить их позже. Посмотрите на эту ссылку, чтобы расширить свое понимание.

В частности, это звучит так, как будто у вас есть произвольный текст в файле и вы хотите сослаться на него в вашей программе. В этом случае string звучит уместно. Если текст в файле не предназначен для представления одного единственного числа, это кажется наиболее подходящим.

Обратите внимание, что если у вас есть структурированные данные (например, файл CSV или файл XML), более сложная структура данных (например, класс, массив классов и т. Д.) Может быть лучшим выбором.

0 голосов
/ 10 мая 2011
#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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...