С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 06.04.2020
Сообщений: 13
1

Работа со строками

18.05.2020, 20:09. Показов 1068. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, у меня есть задание, в котором нужно считать слова из файла и вывести N-ое количество слов (количество указывает пользователь) в виде предложения. Вроде бы всё реализовал, но слова почему-то могу вывести только в столбик. Пожалуйста, помогите вывести их в одну строку.
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
32
33
34
35
36
37
38
39
40
41
42
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <ctime>
#include <string>
using namespace std;
 
 
int main()
{
 
    const int len = 30, strings = 10;
    const char ch = '\n';
    char mass[len][strings];
 
    ifstream fs("1.txt", ios::in | ios::binary);
 
    if (!fs) return 1; 
    int N;
    cin >> N;
    
    for (int r = 0; r < strings; r++)
    {
        fs.getline(mass[r], len - 1, ch); 
        
    }
    srand(time(0));
    string s;
    for (int i = 0; i < N; i++)
    {
        
 
        int secret = rand() % 10 + 1;
        s += mass[secret - 1];
        s += '\n';
}
    cout << s;
    fs.close(); 
    
    system("pause");
    return 0;
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.05.2020, 20:09
Ответы с готовыми решениями:

Работа со строками. Функции работы со строками
Дана строка символов. В заданном тексте определить позицию первой точки ‘ . ‘.

Работа со строками, заполнить компоненты строками из файла
Привет! Нужна помощь в заполнении формы В общем, есть форма отправки письма. У нее есть 2 функции,...

Работа со строками(операции над строками)
Пусть дана последовательность, содержащая от 2 до 50 слов, в каждом из которых от 1 до 8 строчных...

Задание по темам: ООП, исключения, работа со строками (возможно применение коллекций List), работа с компоновщиком
ТЯЖЕЛО РАБОТАТЬ С КОМПОНОВЩИКОМ. БУДУ РАД ВАШИМ ОТВЕТАМ. 1. Ознакомиться с принципом работы...

12
6770 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
18.05.2020, 21:48 2
Цитата Сообщение от Brys Посмотреть сообщение
почему-то могу вывести только в столбик. Пожалуйста, помогите вывести их в одну строку.
C++
1
2
3
4
5
6
7
8
9
10
   string s;
    for (int i = 0; i < N; i++)
    {
        
 
        int secret = rand() % 10 + 1;
        s += mass[secret - 1];
        ////////////////s += '\n';
}
    cout << s << ' ';
0
0 / 0 / 0
Регистрация: 06.04.2020
Сообщений: 13
18.05.2020, 22:21  [ТС] 3
Ну, я так уже пробовал, получается вот так
Миниатюры
Работа со строками  
0
0 / 0 / 0
Регистрация: 06.04.2020
Сообщений: 13
18.05.2020, 22:26  [ТС] 4
А если вывожу в столбик, то всё ок
0
6770 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
18.05.2020, 22:30 5
Цитата Сообщение от Brys Посмотреть сообщение
Ну, я так уже пробовал, получается вот так
Во-первых, проверь что у тебя начитывается из файла
C++
1
2
3
4
5
    for (int r = 0; r < strings; r++)
    {
        fs.getline(mass[r], len - 1, ch); 
        std::cout << mass[r] << std::endl;
    }
Добавлено через 1 минуту
Во-вторых, такое ощущение, что ты перепутал размерности - ты уверен, что должно быть 30 строк по 10 символов в каждой?

Добавлено через 2 минуты
В-третьих
C++
1
2
3
4
5
6
7
8
9
10
    //string s;
    for (int i = 0; i < N; i++)
    {
        
 
        int secret = rand() % 10 + 1; 
       std::cout << mass[secret - 1] << " ";
}
std::cout << std::endl;
    //cout << s;
0
0 / 0 / 0
Регистрация: 06.04.2020
Сообщений: 13
18.05.2020, 22:46  [ТС] 6
1. С файла всё нормально считывается.
2. Да вроде нет.
3. Теперь выводится только одно слово. И у меня появилось ощущение, что слова записываются друг на друге. Вот в у меня в файле есть слово cat, а do уже берётся из другого слова
Миниатюры
Работа со строками  
0
6770 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
18.05.2020, 22:50 7
Цитата Сообщение от Brys Посмотреть сообщение
2. Да вроде нет.
Что да, что нет? Точно перепутал. Должно быть
C++
1
char mass[strings][len];
Добавлено через 28 секунд
Цитата Сообщение от Brys Посмотреть сообщение
3. Теперь выводится только одно слово. И у меня появилось ощущение, что слова записываются друг на друге. Вот в у меня в файле есть слово cat, а do уже берётся из другого слова
Покажи, как сделал
0
0 / 0 / 0
Регистрация: 06.04.2020
Сообщений: 13
18.05.2020, 23:12  [ТС] 8
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
32
33
34
35
36
37
38
39
40
41
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <ctime>
#include <string>
using namespace std;
 
 
int main()
{
 
    const int len = 30, strings = 10;
    const char ch = '\n';
    char mass[strings][len];
 
    ifstream fs("1.txt", ios::in | ios::binary);
 
    if (!fs) return 1; 
    int N;
    cin >> N;
    
    for (int r = 0; r < strings; r++)
    {
        fs.getline(mass[r], len - 1, ch); 
        //std::cout << mass[r] << std::endl;
    }
    srand(time(0));
    //string s;
    for (int i = 0; i < N; i++)
    {
        
 
        int secret = rand() % 10 + 1;
        std::cout << mass[secret - 1] << " ";
}
    std::cout << std::endl;
    fs.close(); 
    
    system("pause");
    return 0;
}
0
6770 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
18.05.2020, 23:20 9
Вроде всё нормально должно работать.
0
0 / 0 / 0
Регистрация: 06.04.2020
Сообщений: 13
18.05.2020, 23:28  [ТС] 10
Но, не работает
0
0 / 0 / 0
Регистрация: 06.04.2020
Сообщений: 13
18.05.2020, 23:30  [ТС] 11
Прикрепил результат и сам файл
Миниатюры
Работа со строками  
Вложения
Тип файла: txt 1.txt (57 байт, 2 просмотров)
0
6770 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
18.05.2020, 23:33 12
Лучший ответ Сообщение было отмечено Brys как решение

Решение

Цитата Сообщение от Brys Посмотреть сообщение
Но, не работает
У меня работает. Единственное , что заменил -
Цитата Сообщение от Brys Посмотреть сообщение
fs.getline(mass[r], len - 1, ch);
на
C++
1
fs >> mass[r];
Добавлено через 2 минуты
Цитата Сообщение от Brys Посмотреть сообщение
Прикрепил результат и сам файл
У тебя там перевод строки - "\r\n", а ты разбиваешь строки по '\n', поэтому '\r' остаётся в строке и переводит каретку к началу

Добавлено через 17 секунд
Сделай fs >> mass[r];
1
0 / 0 / 0
Регистрация: 06.04.2020
Сообщений: 13
18.05.2020, 23:34  [ТС] 13
Ура, спасибо большое. Весь вечер мучился.
0
18.05.2020, 23:34
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.05.2020, 23:34
Помогаю со студенческими работами здесь

Работа со строками C++
Задание: Запросить у пользователя массив из 10 строк и вывести на экран те, которые равны слову...

Работа со строками
Задача: Выяснить, верно ли, что в заданной строке есть подряд идущие три буквы &quot;л&quot;,большие или...

Работа со строками
Добрый день! Помогите пожалуйста необходимо сделать обработку команды для проведения порядкового...

Работа со строками
помощи прошу) Определить, сколько раз в строке встречается заданное слово.

Работа со строками
Дана строка символов. Выяснить, имеется ли в строке 3 соседствующих одинаковых символа. ( Символы...

Работа со строками
С помощью текстового редактора создать файл, содержащий текст, длина которого не превышает 1000...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Это работает. Скорость асинхронной логики велика. Вопрос видимо останется в стабильности. Плата - огонь!
Hrethgir 13.01.2025
По прошлому проекту в Logisim Evolution прилагаю файл архива проекта Gowin Eda и снимок. Восьмибитный счётчик из сумматора+ генератор сигнала согласования+ стартер fast регистров. Файлы прилагаю. . . .
UserScript для подсветки кнопок языков программировани­­­­я в зависимости от текущего раздела
volvo 13.01.2025
В результате работы этого скрипта подсвечиваются нужные кнопки не только в форме быстрого ответа, но и при редактировании сообщения: / / ==UserScript== / / @name CF_DefaultLangSelect / / . . .
Введение в модели и алгоритмы машинного обучения
InfoMaster 12.01.2025
Машинное обучение представляет собой одну из наиболее динамично развивающихся областей искусственного интеллекта, которая фокусируется на разработке алгоритмов и методов, позволяющих компьютерам. . .
Как на Python создать нейросеть для решения задач
InfoMaster 12.01.2025
В контексте стремительного развития современных технологий особое внимание уделяется таким инструментам, как нейросети. Эти структуры, вдохновленные биологическими нейронными сетями, используются для. . .
Как создать нейросеть для генерации картинок на Python
InfoMaster 12.01.2025
Генерация изображений с помощью искусственных нейронных сетей стала одним из наиболее захватывающих направлений в области компьютерного зрения и машинного обучения. В этой статье мы рассмотрим. . .
Создание нейросети для генерации текста на Python
InfoMaster 12.01.2025
Нейросети, или искусственные нейронные сети, представляют собой модели машинного обучения, вдохновленные работой человеческого мозга. Они состоят из множества взаимосвязанных узлов, или "нейронов",. . .
Как создать нейросеть распознавания изображений на Python
InfoMaster 12.01.2025
Введение в распознавание изображений с помощью нейросетей Распознавание изображений с помощью нейронных сетей стало одним из самых впечатляющих достижений в области искусственного интеллекта. Эта. . .
Основы искуственного интеллекта
InfoMaster 12.01.2025
Искусственный интеллект (ИИ) представляет собой одну из наиболее динамично развивающихся областей современной науки и технологий. В широком смысле под искусственным интеллектом понимается способность. . .
Python и нейросети
InfoMaster 12.01.2025
Искусственные нейронные сети стали неотъемлемой частью современных технологий, революционизировав множество областей - от медицинской диагностики до автономных транспортных средств. Python, благодаря. . .
Python в машинном обучении
InfoMaster 12.01.2025
Python стал неотъемлемой частью современного машинного обучения, завоевав позицию ведущего языка программирования в этой области. Его популярность обусловлена несколькими ключевыми факторами, которые. . .
Создание UI на Python с TKinter
InfoMaster 12.01.2025
TKinter — это одна из наиболее популярных библиотек для создания графических интерфейсов пользователей (GUI) в языке программирования Python. TKinter входит в стандартную библиотеку Python, что. . .
HTML5 в разработке мобильных приложений
InfoMaster 12.01.2025
Введение: Обзор роли HTML5 в мобильной разработке В современном мире мобильных технологий HTML5 стал ключевым инструментом для разработки кроссплатформенных приложений. Эта технология произвела. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru