Форум программистов, компьютерный форум CyberForum.ru

Взять текст из текстового файла и поместить его в массив для дальнейшей обработки массива - C++

Восстановить пароль Регистрация
 
strannik11
2 / 2 / 0
Регистрация: 03.02.2014
Сообщений: 28
08.02.2014, 14:52     Взять текст из текстового файла и поместить его в массив для дальнейшей обработки массива #1
добрый день уважаемые форумчане! Подскажите новичку в программировании, как можно взять текст из текстового файла и поместить его в массив для дальнейшей обработки массива.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.02.2014, 14:52     Взять текст из текстового файла и поместить его в массив для дальнейшей обработки массива
Посмотрите здесь:

Поместить в массив для дальнейшей обработки время из ячеек Excel C++
Программа обработки текстового файла C++
C++ Как поместить содержимое текстового файла в Edit?
Как вернуть массив обьектов для дальнейшей работы с ним? C++
Данный массив A (n). Все положительные его элементы поместить в начало массива B (n), а все отрицательные - в начало массива C (n). Подсчитать количес C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vourhey
Почетный модератор
6469 / 2244 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
08.02.2014, 14:54     Взять текст из текстового файла и поместить его в массив для дальнейшей обработки массива #2
std::istream::read
strannik11
2 / 2 / 0
Регистрация: 03.02.2014
Сообщений: 28
08.02.2014, 14:56  [ТС]     Взять текст из текстового файла и поместить его в массив для дальнейшей обработки массива #3
если можно опишите поподробней пожалуйста, я не давно начал изучать си.
0x10
2426 / 1598 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
08.02.2014, 14:58     Взять текст из текстового файла и поместить его в массив для дальнейшей обработки массива #4
Пример: http://www.cplusplus.com/reference/cstdio/fgets/
strannik11
2 / 2 / 0
Регистрация: 03.02.2014
Сообщений: 28
08.02.2014, 16:33  [ТС]     Взять текст из текстового файла и поместить его в массив для дальнейшей обработки массива #5
спасибо, буду разбираться дальше с заданием.

Добавлено через 31 минуту
можете подсказать что мне поправить с своем коде, что бы весь массив записать в текстовый файл, сейчас записывается только первая строка. буду признателен если поможете. вот мой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
using namespace std;
int main()
{
     setlocale(0,"");
 
   FILE * pFile;
   char str [1000];
 
   pFile = fopen ("Input_1.txt" , "r");
   if (pFile == NULL) perror ("Error opening file");
   else {
     if ( fgets (str , 1000 , pFile) != NULL )
       puts (str);
     fclose (pFile);
   }
   char * fileName = "Output_1.txt"; 
    FILE * file = fopen(fileName, "w");
    if (file) 
        {
        bool result = fputs(str, file); 
        if (!result) 
            cout << "Строка в файл успешно записана!" << endl; 
    }
    else
    cout << "Нет доступа к файлу!" << endl;
    fclose(file);
   return 0;
}
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
08.02.2014, 17:10     Взять текст из текстового файла и поместить его в массив для дальнейшей обработки массива #6
Цитата Сообщение от strannik11 Посмотреть сообщение
взять текст из текстового файла и поместить его в массив для дальнейшей обработки массива.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <algorithm>
#include <iostream>
#include <iterator>
#include <fstream>
#include <vector>
#include <string>
 
int main()
{
    std::ifstream inputFile("text.txt");
    std::vector <std::string> vectorText;
    std::copy(std::istream_iterator <std::string> (inputFile), std::istream_iterator <std::string> (), std::back_inserter(vectorText));
    
    std::cout << "Vector: " << std::endl;
    std::copy(vectorText.begin(), vectorText.end(), std::ostream_iterator <std::string> (std::cout, " "));
 
    std::system("pause");
    return 0;
}
strannik11
2 / 2 / 0
Регистрация: 03.02.2014
Сообщений: 28
09.02.2014, 13:18  [ТС]     Взять текст из текстового файла и поместить его в массив для дальнейшей обработки массива #7
а что означает вот эта строка"std::vector <std::string> vectorText;" просто интересно, vector до этого нигде вроде не встречал
0x10
2426 / 1598 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
09.02.2014, 13:24     Взять текст из текстового файла и поместить его в массив для дальнейшей обработки массива #8
Цитата Сообщение от strannik11 Посмотреть сообщение
что означает вот эта строка"std::vector <std::string> vectorText;"
Динамический массив строк. http://www.cplusplus.com/reference/vector/vector/
strannik11
2 / 2 / 0
Регистрация: 03.02.2014
Сообщений: 28
09.02.2014, 13:32  [ТС]     Взять текст из текстового файла и поместить его в массив для дальнейшей обработки массива #9
спасибо всем за ответы
parsila
5 / 5 / 3
Регистрация: 08.04.2013
Сообщений: 30
09.02.2014, 13:42     Взять текст из текстового файла и поместить его в массив для дальнейшей обработки массива #10
Попробуйте еще такую конструкцию перед int main():

C++ (Qt)
1
2
ifstream fin("palindrome.in");
#define cin fin
То есть Вы можете продолжать пользоваться cin, только теперь ввод будет происходить из файла (в данном случае - palindrome.in).
0x10
2426 / 1598 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
09.02.2014, 13:55     Взять текст из текстового файла и поместить его в массив для дальнейшей обработки массива #11
parsila, вот не надо нам таких хаков.
Если хочется перенаправлять вывод - это можно делать и внешними средствами оболочки.
parsila
5 / 5 / 3
Регистрация: 08.04.2013
Сообщений: 30
09.02.2014, 14:01     Взять текст из текстового файла и поместить его в массив для дальнейшей обработки массива #12
0x10, Можете пояснить, как это делается? Я привык перенаправлять именно так, интересно узнать другие пути.
0x10
2426 / 1598 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
09.02.2014, 14:21     Взять текст из текстового файла и поместить его в массив для дальнейшей обработки массива #13
parsila, для юниксов:
Bash
1
$ ./program > output.txt
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.02.2014, 14:59     Взять текст из текстового файла и поместить его в массив для дальнейшей обработки массива
Еще ссылки по теме:

C++ Чтение текстового файла и его данных в разные переменные
C++ Из текстового файла с данными выбрать отдельные столбцы для записи в массив
C++ Есть массив в виде табличных данных, как его поделить на отдельные элементы для дальнейшей работы?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
strannik11
2 / 2 / 0
Регистрация: 03.02.2014
Сообщений: 28
09.02.2014, 14:59  [ТС]     Взять текст из текстового файла и поместить его в массив для дальнейшей обработки массива #14
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <algorithm>
#include <iostream>
#include <iterator>
#include <fstream>
#include <vector>
#include <string>
 
int main()
{
    std::ifstream inputFile("text.txt");
    std::vector <std::string> vectorText;
    std::copy(std::istream_iterator <std::string> (inputFile), std::istream_iterator <std::string> (), std::back_inserter(vectorText));
    
    std::cout << "Vector: " << std::endl;
    std::copy(vectorText.begin(), vectorText.end(), std::ostream_iterator <std::string> (std::cout, " "));
 
    std::system("pause");
    return 0;
}
а в этом тексте программы в какой массив происходит запись? как к нему обратиться в дальнейшем?
и еще вопрос в такой записи не пишется функция закрытия файла такого типа: fclose (f);?
Yandex
Объявления
09.02.2014, 14:59     Взять текст из текстового файла и поместить его в массив для дальнейшей обработки массива
Ответ Создать тему
Опции темы

Текущее время: 23:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru