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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
strannik11
2 / 2 / 0
Регистрация: 03.02.2014
Сообщений: 28
#1

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

08.02.2014, 14:52. Просмотров 618. Ответов 13
Метки нет (Все метки)

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

Поместить в массив для дальнейшей обработки время из ячеек Excel - C++
Всем привет, задача такая: Есть документ Excel, в нем есть некоторые данные. Необходимо переместить их в массивы для дальнейшей...

Считать из текстового файла рандомные числа и поместить в отдельный массив - C++
Помогите,не могу разобраться.Вот у меня есть текстовой файл,в нем скажем есть 30 000 разных чисел,как мне считать из файла рандомных 800...

Считать числа из файла в массив для дальнейшей работы с ними - C++
дан файл, в котором записаны данные: X 1 2 35 41 5 63 7 80 нужно считать ЧИСЛА из файла в массив для работы с ними. Никак не...

Есть массив в виде табличных данных, как его поделить на отдельные элементы для дальнейшей работы? - C++
Есть массив в виде табличных данных,как его поделить на отдельные элементы для работы дальше?строка разделена ";",нужен кусочек тот которой...

Данный массив A (n). Все положительные его элементы поместить в начало массива B (n), а все отрицательные - в начало массива C (n). Подсчитать количес - C++
Данный массив A (n). Все положительные его элементы поместить в начало массива B (n), а все отрицательные - в начало массива C (n)....

Как поместить содержимое текстового файла в Edit? - C++
Подскажите, пожалуйста, как проще всего поместить содержимое текстового файла в Edit или хотя бы просто добавить многострочный текст в...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Vourhey
Почетный модератор
6480 / 2255 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
08.02.2014, 14:54 #2
std::istream::read
0
strannik11
2 / 2 / 0
Регистрация: 03.02.2014
Сообщений: 28
08.02.2014, 14:56  [ТС] #3
если можно опишите поподробней пожалуйста, я не давно начал изучать си.
0
0x10
2463 / 1635 / 238
Регистрация: 24.11.2012
Сообщений: 4,022
08.02.2014, 14:58 #4
Пример: http://www.cplusplus.com/reference/cstdio/fgets/
1
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;
}
0
Ev[G]eN
Эксперт С++
5097 / 1535 / 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;
}
1
strannik11
2 / 2 / 0
Регистрация: 03.02.2014
Сообщений: 28
09.02.2014, 13:18  [ТС] #7
а что означает вот эта строка"std::vector <std::string> vectorText;" просто интересно, vector до этого нигде вроде не встречал
0
0x10
2463 / 1635 / 238
Регистрация: 24.11.2012
Сообщений: 4,022
09.02.2014, 13:24 #8
Цитата Сообщение от strannik11 Посмотреть сообщение
что означает вот эта строка"std::vector <std::string> vectorText;"
Динамический массив строк. http://www.cplusplus.com/reference/vector/vector/
1
strannik11
2 / 2 / 0
Регистрация: 03.02.2014
Сообщений: 28
09.02.2014, 13:32  [ТС] #9
спасибо всем за ответы
0
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).
0
0x10
2463 / 1635 / 238
Регистрация: 24.11.2012
Сообщений: 4,022
09.02.2014, 13:55 #11
parsila, вот не надо нам таких хаков.
Если хочется перенаправлять вывод - это можно делать и внешними средствами оболочки.
0
parsila
5 / 5 / 3
Регистрация: 08.04.2013
Сообщений: 30
09.02.2014, 14:01 #12
0x10, Можете пояснить, как это делается? Я привык перенаправлять именно так, интересно узнать другие пути.
0
0x10
2463 / 1635 / 238
Регистрация: 24.11.2012
Сообщений: 4,022
09.02.2014, 14:21 #13
parsila, для юниксов:
Bash
1
$ ./program > output.txt
1
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);?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.02.2014, 14:59
Привет! Вот еще темы с ответами:

Программа обработки текстового файла - C++
Помогите написать программу на Си! Дано: Текстовый файл inString.txt содержит список (столбец) слов русского языка - имён...

Как получить имя файла для дальнейшей работы с этим файлом? - C++
Есть программа в которой используются функции GetOpenFile() и GetSaveFile() для открытия и сохранения файлов. Нужно получить из этих...

Как вернуть массив обьектов для дальнейшей работы с ним? - C++
#include &lt;iostream&gt; class Ex { public: Ex(char *);//конструктор ~Ex();//деструктор (пока не используется) Ex...

Взять текст из буфера обмена и поместить его в RichEdit - C++ Builder
Только начал изучать C++. Посмотрите, что не так? void __fastcall TForm1::Button3Click(TObject *Sender) { if...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
09.02.2014, 14:59
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru