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

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

Войти
Регистрация
Восстановить пароль
 
supertigr1983
0 / 0 / 0
Регистрация: 07.10.2013
Сообщений: 21
#1

Вывод из строки в файл - C++

07.10.2013, 21:39. Просмотров 380. Ответов 9
Метки нет (Все метки)

Уважаемые знатоки у меня к вам несколько вопросов по программе..

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<iostream>
#include<fstream>
#include<string>
 using namespace std;
 
int main() {
 
setlocale (LC_ALL, "RUS");                     //узнает русс язык
  ifstream f("D:\\test1.txt");                  //для чтения 
  ofstream f1("D:\\test2.txt");               //для записи
   [B]string item;[/B]
     getline(f,item);                               //считываем весь файл "f" в строку "item"
        while (f)                                     //пока не закончиться файл выводим его построково
         {
    cout<<item<<endl;                   //построчно выводим содержимое файла на экран
        getline(f,item);
          }
     cout<<endl<<endl;
              f.close();
       f1.close();
         cout<<endl<<endl; system("pause");
                    }
Подскажите пжлст как записать все содержимое из "item" в файл f1("D:\\test2.txt"), и как получить доступ к каждому из элементов строки "item" ?? Буду очень признателен!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.10.2013, 21:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывод из строки в файл (C++):

Вывод строки в файл - C++
Препод задал объяснить задал объяснить программу: #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; /* * */ int main(int argc,...

Вывод строки в текстовый файл - C++
Вместо строки появляется нечто вроде 25d3fe4 Подскажите пожалуйста, в чем ошибка? ofstream fout; ...

Запуск из командной строки и вывод в файл - C++
В общем, запускаю программу из командной строки и делаю вывод в файл. Как можно сделать так, чтобы этот файл вывода лежал рядом с...

Разбор командной строки\Вывод в файл координат - C++
Здравствуйте. Помогите, пожалуйста, дополнить код. Нужно сделать так, чтобы координаты точек, где прошел робот, записывались в файл...

Вывод в файл из командной строки по указанному в ней пути - C++
Здравствуйте! Нужно написать программу, которая копирует вводимый с клавиатуры код (до эмулированного конца файла) в файл, имя которого...

Строки, имеющиеся в двух заданных текстовых файлах, записать в третий файл (файловый ввод/вывод) - C++
Даны два текстовых файла. Записать в третий файл только те строки, которые есть и в первом, и во втором файлах.

9
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
07.10.2013, 21:42 #2
Цитата Сообщение от supertigr1983 Посмотреть сообщение
одскажите пжлст как записать все строки из "item" в файл f1("D:\\test2.txt")
C++
1
2
3
4
5
6
while (f) //пока не закончиться файл выводим его построково
{
cout<<item<<endl; //построчно выводим содержимое файла на экран
getline(f,item);
f1 << item;
}
Цитата Сообщение от supertigr1983 Посмотреть сообщение
как получить доступ к каждому из элементов строки "item"
operator[]. item[0] - первая буква, и т.д.
0
supertigr1983
0 / 0 / 0
Регистрация: 07.10.2013
Сообщений: 21
07.10.2013, 22:03  [ТС] #3
while (f) //пока не закончиться файл выводим его построково
{
cout<<item<<endl; //построчно выводим содержимое файла на экран
getline(f,item);
f1 << item;
}
Спс помогло!!!

operator[]. item[0] - первая буква, и т.д.
Не помогло( Синтаксич. ошибка при попытке присваивания значения переменной char j = operator[1].item[2];
Если можно кусочек готового кода чтоб в синтаксисе разобраться
0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
07.10.2013, 22:05 #4
Цитата Сообщение от supertigr1983 Посмотреть сообщение
Не помогло(
Так не надо копировать всё подряд
C++
1
char j = item[2];
Добавлено через 41 секунду
operator[] - это название метода класса std::string
0
supertigr1983
0 / 0 / 0
Регистрация: 07.10.2013
Сообщений: 21
07.10.2013, 22:19  [ТС] #5
1 char j = item[2];
Не знаю чем это может помочь((

Я уточню свой вопрос:

string item;предположим содержит следующие строки с текстом

[h][e][l][l][o][][w][o][r][l][d]
[g][o][o][d][][m][o][r][n][i][n][g]
[h][a][p][p][y][][d][a][y]

как я могу получить доступ к букве [r] в [g][o][o][d][][m][o][r][n][i][n][g] ??? Подскажите пжлст..
0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
07.10.2013, 22:23 #6
std::string содержит одну, а не несколько строк. Доступ к i-ому символу делается так:
C++
1
2
std::string s = "good morning";
std::cout << s[7] << std::endl; // Выводим 8ой символ
0
supertigr1983
0 / 0 / 0
Регистрация: 07.10.2013
Сообщений: 21
07.10.2013, 22:37  [ТС] #7
1) Вы создали строку string s и присвоили ей значения 2-ой строки из потока string item
2) Вы вывели значение 8-ого элемента на экран..

Но как это може помочь, если программисту к примеру необходимо отсортировать все эти слова по алфавиту и записать в файл в столбик??
0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
07.10.2013, 22:57 #8
Цитата Сообщение от supertigr1983 Посмотреть сообщение
Но как это може помочь, если программисту к примеру
Для каждой задачи своё решение.
Цитата Сообщение от supertigr1983 Посмотреть сообщение
необходимо отсортировать все эти слова по алфавиту и записать в файл в столбик
Создаем вектор (std::vector) строк. Сортируем стандартным алгоритмом std::sort. Выводим в файл построчно.
0
MrGluck
Модератор
Эксперт CЭксперт С++
7510 / 4642 / 700
Регистрация: 29.11.2010
Сообщений: 12,678
08.10.2013, 02:53 #9
Цитата Сообщение от Tulosba Посмотреть сообщение
Создаем вектор (std::vector) строк. Сортируем стандартным алгоритмом std::sort.
Если единственная задача вектора - сортировка и вывод, то почему бы не std::set(std::multiset) ?

Коротко и ясно:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <fstream>
#include <string>
#include <fstream>
#include <set>
#include <iterator>
 
int main()
{
    std::ifstream ifs("input.txt");
    if (!ifs) return 1;
    std::ofstream o("output.txt");
    typedef std::istream_iterator<std::string> input_str;
    typedef std::ostream_iterator<std::string> output_str;
    std::multiset<std::string> words((input_str(ifs)), input_str());
    std::copy(words.cbegin(), words.cend(), output_str(o, "\n") );
}
<3 STL
1
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
08.10.2013, 08:40 #10
MrGluck, можно и так. Главное, чтобы автор понимал, что в мапе элементы всегда упорядочены. Однако для первого приближения, подход с разделением контейнера и алгоритма кажется мне более очевидным.
P.s. Почему o не проверяется на успех?
0
08.10.2013, 08:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.10.2013, 08:40
Привет! Вот еще темы с ответами:

Для каждой строки файла удалить среднее слово; результат записать в файл (файловый ввод/вывод) - C++
для каждой строки файла удалить среднее слово. результат записать в файл

Текстовый файл содержит строки – предложения разной длины. Записать их в выходной файл в порядке возрастания длины строки - C++
ребят всю голову сломал уже завтра уже надо сдавать(( Текстовый файл содержит строки – предложения разной длины. Записать их в...

Текстовый файл содержит строки – предложения разной длины. Записать их в выходной файл в порядке возрастания длины строки - C++
Текстовый файл содержит строки – предложения разной длины. Записать их в выходной файл в порядке возрастания длины строки.

Файл: Скопировать текст в другой текстовый файл файл, но чётные строки должны быть с большой буквы... - C++
Создать текстовый файл. Скопировать текст в другой текстовый файл файл, но чётные строки должны быть с большой буквы, а нечетные с...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

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