Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Определить, в каком году было больше всего дел, связанных с мошенничеством https://www.cyberforum.ru/ cpp-beginners/ thread624693.html
Предусмотреть вывод значений для полей элементов массива записей по следующим критериям: дата, предмет судебного разбирательства, название фирмы-истца, название фирмы-обвиняемого. Определить, в каком...
C++ Программа судебных разбирательств
Создать маленькую базу данных судебных разбирательств с такими полями: Судебное дело<<Причина разбирательства, Дата(день, месяц, год), Истец (Номер телефона, компания), Ответчик(Номер телефона,...
std::bind C++
Можно ли, и если да, то как с помощью этой функции сделать следующее: auto var=std::bind(&f, "arg"); //... //... //тут надо из var вызвать f("arg")
C++ Для чего какая библиотека нужна помогите разобраться для чего какая библиотека нужна https://www.cyberforum.ru/ cpp-beginners/ thread624657.html
C++ Code::Blocks Не запускается .exe откомпилированной программы https://www.cyberforum.ru/ cpp-beginners/ thread624656.html
->Проблема решена.:)
C++ Cd key convert
Здраствуйте, есть некая программа, установщик который при запуске запрашивает ключ установки вот такого вида: P4WN-02KRK-EL372-DA8KA-HX19C Y48R-6ZHGJ-5GK03-R3TPG-TH5W1 A4L1-XSH86-VLMTC-2DFF3-AB9JC...
C++ Возврат к предыдущему состоянию
нужно сделать так чтобы после удачного завершение программы она спрашивала хотите ли повторить. было 2 варианта. либо да либо нет. он должен был ввести его если он написал 1. то программа автоматом...
C++ Задача: делить числа на отдельные цифры У меня проблема. Имеется такая задача: попросить пользователя ввести 5-ти значное число и напечатать их отдельно цифрами, между цифрами 2 пробела. Я попробовал решить эту задачу таким образом:... https://www.cyberforum.ru/ cpp-beginners/ thread624626.html
C++ Вывод текста https://www.cyberforum.ru/ cpp-beginners/ thread624617.html
нужно чтобы программа запоминала имя и выводило его. незнаю что нужно поставить перед res; int main() { setlocale(LC_ALL, "Russian"); ??? res; //возращение ответа cout << "Введите ваше имя:...
C++ Поиск пути есть таблица в которой некоторые клетки заняты и некоторые свободны. нужен алгоритм нахождения пути из точку а(х1,у1) в точку б(х2,у2). Двигаться можно только в четыре направления "вверх", "вниз",... https://www.cyberforum.ru/ cpp-beginners/ thread624609.html
2 / 2 / 1
Регистрация: 21.11.2011
Сообщений: 183
0

Метод cin.getline(str,n,'\n'), если в строке более n-1 символа

16.07.2012, 22:16. Просмотров 1482. Ответов 6
Метки (Все метки)


Помогите пожалуйста!
Насколько знаю метод cin.getline(str,n,'\n'), должен считать n-1 символ из строки и занести в конец строки '\0', либо считать произвольное количество символом до '\n' включительно. Вот... пишу такую штуку:

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>
 
using namespace std;
 
enum A {STR = 2, LEN = 100};
 
int main(void)
{
    
    char str[STR][LEN];
    int i = 0;
 
    for(int i = 0; i < STR; i++)
        cin.getline(str[i],10,'\n');
 
    for(int i = 0; i < STR; i++)
        cout << str[i] << endl;
 
    system("pause");
 
    return 0;
}
в консоли ввожу 123456789123456789. Он считывает только 123456789, остальные цифры не хочет, почему? Ведь после первого считывания, в потоке остается 123456789\n, а он при втором считывании считывает кажется '\n' ...

Добавлено через 13 минут
Да и еще, если поставить после cin.getline(str[i],10,'\n'); строчку cout << cin.peek(); т.е.
C++
1
2
3
4
5
for(int i = 0; i < STR; i++)
{
     cin.getline(str[i],10,'\n');
     cout << cin.peek();
}
то он выведет -1, т.е. EOF, т.е. конец файла...но ведь это не конец...шельма какая-то...

Добавлено через 3 минуты
пробовал писать
C++
1
2
3
4
5
for(int i = 0; i < STR; i++)
{
     cin.getline(str[i],10,'\n');
     cin.ignore();
}
но тоже каналья...

Вернуться к обсуждению:
Метод cin.getline(str,n,'\n'), если в строке более n-1 символа
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.07.2012, 22:16
Готовые ответы и решения:

getline(cin, str) и cin>>
Добрый день. Есть код: ... string str; int N; cin&gt;&gt; N; getline(cin, str); cout&lt;&lt;str&lt;&lt;endl;...

Метод getline(cin, m) не срабатывает без cin.ignore() / Ревью кода
Почему в моем случае getline(cin, m) не срабатывает без cin.ignore() ? Если по коду есть...

Почему при использовании getline( std::cin, str ) строка считывается не так, как ожидается?
Цель программы: При вводе строки, подсчитывает количество гласных букв. Проблема: При вводе...

Подсчёт количества символов в строке (cin.getline)
Здравствуйте! Задача такова: нужно подсчитать количество символов 'a' в строке. Помогите,...

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