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

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

Войти
Регистрация
Восстановить пароль
 
denvasden
4 / 4 / 0
Регистрация: 25.10.2012
Сообщений: 104
#1

Вывод в одну строку - C++

11.02.2013, 18:23. Просмотров 1174. Ответов 7
Метки нет (Все метки)

Добрый день!
Господа, помогите новичку!

Есть вот такой код:
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 <vector>
#include <string>
 
using namespace std;
 
int main()
{
    string line;
    vector<string> v;
    ifstream in("file.txt");
 
    while(getline(in, line))
    {
        v.push_back(line);
    }
    for(int i = 0; i < v.size(); i++)
    {
        cout << i << ": " << v[i] << endl;
    }
}
Нужно, чтобы перед выводом все элементы вектора объединились в одну строку.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.02.2013, 18:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывод в одну строку (C++):

Вывод данных в одну строку - C++
П.5.18.Правил Запрещено размещать задания и решения в виде картинок и других файлов с их текстом. Помогите, пожалуйста. Объясните, как...

Вывод текста и указателя в одну строку - C++
char *t = decToBin(i); Memo4-&gt;Lines-&gt;Add(t); Как мне добавить текст в начале что бы было: &quot;Текст&quot;+*значение переменной...

Азбука Морзе, вывод в одну строку - C++
#include &lt;iostream&gt; #include &lt;cstring&gt; using namespace std; void convert (char); int main(){ char eng; cin &gt;&gt; eng; ...

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

Вывод результата несколько раз отработанной функции в одну строку - C++
Очень интересный момент нашел я для себя сегодня в С++. А точнее в выводе средствами iostream Прошу Вас объяснить, что происходит. ...

Написать программу, которая вводит с клавиатуры строку не более 100 символов, еще одну строку не более 50 символов и выводит на экран позиции вхождени - C++
Задание: Написать программу, которая вводит с клавиатуры строку не более 100 символов, еще одну строку не более 50 символов и выводит на...

7
xtorne21st
интересующийся
304 / 275 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
11.02.2013, 18:28 #2
Цитата Сообщение от denvasden Посмотреть сообщение
Нужно, чтобы перед выводом все элементы вектора объединились в одну строку.
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
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
 
using namespace std;
 
int main()
{
    string line, conc_line;
    vector<string> v;
    ifstream in("file.txt");
 
    while(getline(in, line))
    {
        v.push_back(line);
        conc_line += line + ' ';
    }
 
    cout << conc_line << endl; // вывод всех строк
 
    for(int i = 0; i < v.size(); i++)
    {
        cout << i << ": " << v[i] << endl;
    }
}
1
denvasden
4 / 4 / 0
Регистрация: 25.10.2012
Сообщений: 104
11.02.2013, 18:38  [ТС] #3
Ev[G]eN, какая?
xtorne21st, ваш код срабатывает не так как нужно(
Это задание из книжки, которые обычно бывают по завершению главы. Большую часть сделал, а тут что то затупил.
Мне почему то казалось, что манипуляции должны быть проделаны в цикле.
0
xtorne21st
интересующийся
304 / 275 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
11.02.2013, 19:57 #4
Цитата Сообщение от denvasden Посмотреть сообщение
Мне почему то казалось, что манипуляции должны быть проделаны в цикле.
Он и так в цикле, если начальный код работает верно, этот тоже будет верно работать, справедливо и обратное.

Добавлено через 29 минут
Если у вас в задании просто прочитать с файла строки и вывести результат в одной строке, то вектор тут на нужен:
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
#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>
 
int main()
{
    std::string file_name, line, conc_line;
 
    std::cout << "Put file name: ";
    std::cin >> file_name;
 
    std::ifstream in(file_name.c_str());
    if (!in) {
        std::cerr << "Error: couldn't read file '" << file_name << "'\n";
        exit(1);
    }
 
    while (!in.eof()) {
        std::getline(in, line);
        conc_line += line + "; ";
    }
 
    in.close();
 
    std::cout << conc_line << std::endl;
 
    return 0;
}
1
denvasden
4 / 4 / 0
Регистрация: 25.10.2012
Сообщений: 104
11.02.2013, 20:09  [ТС] #5
Цитата Сообщение от xtorne21st Посмотреть сообщение
Он и так в цикле, если начальный код работает верно, этот тоже будет верно работать, справедливо и обратное.
Про то, что и так в цикле это верно помечено. (я имел в виду for)
Начальный код работал.
Векторы используются, чтобы попрактиковаться с ними.

Спасибо за помощь.(хотя для новичка сложновато было понять все, что было изложено во втором листинге кода)

А почему вы используете такого рода объявление/определение.
Цитата Сообщение от xtorne21st Посмотреть сообщение
std::string file_name, line, conc_line;
почему std:: ?
почему не используете пространство имен?
0
Tiva
94 / 94 / 1
Регистрация: 25.04.2012
Сообщений: 429
11.02.2013, 20:37 #6
Цитата Сообщение от denvasden Посмотреть сообщение
Добрый день!
Господа, помогите новичку!

Есть вот такой код:
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 <vector>
#include <string>
 
using namespace std;
 
int main()
{
    string line;
    vector<string> v;
    ifstream in("file.txt");
 
    while(getline(in, line))
    {
        v.push_back(line);
    }
    for(int i = 0; i < v.size(); i++)
    {
        cout << i << ": " << v[i] << endl;
    }
}
Нужно, чтобы перед выводом все элементы вектора объединились в одну строку.
у std::string есть такой метод, как append
C++
1
2
3
4
5
6
string long_string;
for(int i=0; i<v.size(); i++)
{
    str.append(' ');
    str.append(v[i]);
}
Добавлено через 3 минуты
Цитата Сообщение от denvasden Посмотреть сообщение
почему std:: ?
почему не используете пространство имен?
как раз не использование всего неймспейса является хорошим тоном. зачем цеплять весь std, когда используется только cin cout string vector - это 1\100 от всего данного неймспейса
2
xtorne21st
интересующийся
304 / 275 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
11.02.2013, 20:51 #7
Цитата Сообщение от Tiva Посмотреть сообщение
как раз не использование всего неймспейса является хорошим тоном
К томуже это даёт чётко понять к чему именно принадлежит данный объект (в данном случаи объекты библиотеки принадлежат стандартному пространству имён). Как-то так
1
Tiva
94 / 94 / 1
Регистрация: 25.04.2012
Сообщений: 429
11.02.2013, 20:53 #8
Цитата Сообщение от xtorne21st Посмотреть сообщение
К томуже это даёт чётко понять к чему именно принадлежит данный объект (в данном случаи объекты библиотеки принадлежат стандартному пространству имён). Как-то так
угу, особенно попробуйте почитать\написать код с использованием boost, например буст тред и буст азио(практически всегда вместе используется), и использовать какие-либо контейнеры из std
да в коде запутать как делать нефиг если не видно пространства
1
11.02.2013, 20:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.02.2013, 20:53
Привет! Вот еще темы с ответами:

setfill на одну строку - C++
Добрый день, подскажите пожалуйста, как сделать, что б setfill заполнял пустые места только у одного, определенного, поля, а не у всех?

Удалить одну строку - C++
Например, вывожу две строки: cout &lt;&lt; &quot;Hello &quot;; cout &lt;&lt; &quot;World&quot;; И нужно стереть только вторую. system(&quot;cls&quot;) не подходит,...

Простой вопрос в одну строку - C++
что делает эта строка: for (int j=0; j&lt;i; j++) И как задать промежуток, чтобы поиск осуществлялся в его пределах. Сама задача: Дан...

cout cin в одну строку - C++
cout&lt;&lt;&quot;name: &quot;&lt;&lt;endl; cin&gt;&gt;Name; Хочу добиться следующего результата name: Name, но получается cout на одной строчку cin на другой. ...


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

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

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